Zitat
#!/usr/local/bin/perl
print "Willkommen bei Qa²!\n";
print "Question and Answer lädt Fragen und Antworten aus einer Wordlist und fragt diese ab!\n";
print "by Hosenwelt Entertainment www.hosenwelt.com\n";
print "SUPPORT OPEN SOURCE!\n";
print "\nWelche Wordlist öffnen?\n";
$wl=<STDIN>;
open (INFO, $wl);
$ques=<INFO>;
close(INFO);
@quas=split(/:/,$ques);
%quos=@quas;
print "Keys(1) oder Values(2) abfragen?\n";
$dec=<STDIN>;
chomp $dec;
### jetzt geht das richtig schwere los....
if ($dec == 1) {
foreach $key(keys %quos) {
print $key;
print "\nAntwort?\n";
$answ=<STDIN>;
chomp $answ;
$else=$quos{"$answ"}; # hier hab ich schon "$answ", $answ und '$answ' probiert...
if ($answ eq $else) {
print "Richtig!\n";
} else {
print "Falsch!\n Richtig wäre $else\n";
}
}
} else {
print "working on that...";
}
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Zitat
Original von Hose
Hier, kann mir jemand sagen, warum folgendes PERL Skript meinerseits nicht geht?
Quellcode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 #!/usr/local/bin/perl print "Willkommen bei Qa²!\n"; print "Question and Answer lädt Fragen und Antworten aus einer Wordlist und fragt diese ab!\n"; print "by Hosenwelt Entertainment --> [URL]www.hosenwelt.com\n[/URL]"; print "SUPPORT OPEN SOURCE!\n"; print "\nWelche Wordlist öffnen?\n"; $wl=<STDIN>; open (INFO, $wl); # öffenen eines filedescriptors immer abfangen, falls er fehlschlägt! $ques=<INFO>; # # in $ques befindet sich am ende immer noch ein newline! # also chomp $ques; # close(INFO); @quas=split(/:/,$ques); # #durch das split wird der string an den doppelpunkten geteilt, am letzten zeichen hängt #immer noch das newline, damit kann diese antwort NIE erkannt werden, da die #usereingabe dann ein newline enthalten müsste, also oben wie geschrieben ein chomp #$ques einfügen # %quos=@quas; # das array wird in einen hash geladen, damit entsteht eine referenz # aufgabe => ergebnis # aufgabe ist der key , ergebnis der value, der hash ist also über die aufgaben referenziert # $quos{aufgabe}= ergebnis, das erbegnis ist der inhalt, aufgabe die adresse # print "Keys(1) oder Values(2) abfragen?\n"; $dec=<STDIN>; chomp $dec; ### jetzt geht das richtig schwere los.... if ($dec == 1) { foreach $key(keys %quos) { print $key; print "\nAntwort?\n"; $answ=<STDIN>; chomp $answ; # $else=$quos{"$answ"}; # das bringt alles nichts, denn der hash ist nicht über das ergebnis referenziert # also hier muss stehen $else=$quos{$key} if ($answ eq $else) { print "Richtig!\n"; } else { print "Falsch!\n Richtig wäre $else\n"; } } } else { print "working on that..."; }
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)