Avatar billede jonaskvl Nybegynder
06. juli 1999 - 16:23 Der er 8 kommentarer

Problemer med Learning perl

hej .. nu sidder jeg her og prøver at få kode eksemplerne fra bogen til at virke men jeg synes ikke rigtig det lykkes for mig, selv om de ser ud præcis som beskrevet i bogen, kan det være forfatteren har lavet en fejl? er der måske nogen som har været ude for det samme, der er tale om kapittel 1 ..
Avatar billede justincase Nybegynder
06. juli 1999 - 16:37 #1
Post den kode du har, så kigger vi på det

:)

JustinCase
Avatar billede jonaskvl Nybegynder
06. juli 1999 - 16:39 #2
ok..


init_words();
print "what is your name? ";
$name = <STDIN>;
chomp($name);

if ($name =~ /^randal\b/i) { #go back the other way:-)
    print "hello, randal! how good of you to be here!\n";
} else {
    print "hello, $name!\n"; #ordinary greeting
    print "what is the secret word? ";
    $guess = <STDIN>;
   
    while (! good_word($name, $guess)) {
        print "wrong try again. What is the secret word? ";
        $guess = <STDIN>;
        chomp $guess;
    }
}

dbmopen (%last_good, "lastdb", 0666);
$last_good{$name} = time;
dbmclose (%last_good);

sub init_words {
    while ($filename = <*.secret>) {
        open (WORDSLIST, $filename) &#124;&#124;&#124;&#124; die "can't open $filename: $!";
   
    if (-M WORDSLIST < 99.0) {
        while ($name = <WORDSLIST>) {
            chomp ($name);
            $word = <WORDSLIST>;
            chomp ($word);
            $words{$name} = $word;
        }
    } else {
        rename ($filename, "$filename.skod") &#124;&#124;&#124;&#124; die "can't rename filname.old: $!";
    }
    close WORDSLIST;
    }
}

sub good_word {
    my($somename, $someguess) = @_;
    $somename =~ s/\W.*//;
    $somename =~ tr/A-Z/a-z/;
   
    if ($somename eq "randal") {
        return 1;
    } elsif (($words{$somename} &#124;&#124;&#124;&#124; "skod") eq $someguess) {
        return 1;
    } else {
        return 0;
    }
}

       
Avatar billede justincase Nybegynder
06. juli 1999 - 16:54 #3
Hmm det kører fint for mig. Får du fejl eller hvad ??
Avatar billede 127144146281 Nybegynder
06. juli 1999 - 17:28 #4
Kører du det under Windows, for så skal du lige intrallere en Perl fortolker
Avatar billede jonaskvl Nybegynder
06. juli 1999 - 18:14 #5
Jah.. altså den starter den godt nok men det virker ikke som det skal .. ehm.. det er jo sådan at hvis du skriver et navn er der tilknyttet et ord som den så skal kunne godkende .. men det virker ikke.. den kan ikke kende nogle ord ikke engang groucho ..
Avatar billede anna Nybegynder
06. juli 1999 - 23:51 #6
Husk når man uploader et perl script skal dit ftp program bruge transfer type ASCII. til at uploade med eller viker perl programmet ikke.
Avatar billede jonaskvl Nybegynder
06. juli 1999 - 23:55 #7
Jeg udvikler lokalt men ellers tak :)
Avatar billede erikjacobsen Ekspert
23. november 1999 - 02:01 #8
Mit gæt er, at du har ændret lidt i eksemplet. Jeg tvivler på at hr.
Randal har skrevet "skod" i sit program. I særlig grad er det derfor
linien:

  } elsif (($words{$somename} || "skod") eq $someguess) {

som jeg kraftigt formoder bør have denne form:

  } elsif ($words{$somename} eq $someguess || $someguess eg "skod") {

Det du prøver på kan man ikke. Er der andet galt?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester