Leser: 25
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
#!/usr/bin/perl use strict; use warnings; use List::Util ('shuffle'); my ($vokabeln_file, $loesung_file, $nichtgekonnte_file) = ("Vokabeln.txt", "Loesung.txt", "nichtgekonnte.txt"); open (my $vokabeln_FH, '<', $vokabeln_file) || die "Die Datei $vokabeln_file konnte nicht gefunden werden"; chomp(my @vokabeln_array = <$vokabeln_FH>); close ($vokabeln_FH); my %vokabeln; open (my $loesung_FH, '<', $loesung_file) || die "Die Datei $loesung_file konnte nicht gefunden werden"; chomp($vokabeln{$vokabeln_array[$.-1]} = $_) while (<$loesung_FH>); close ($loesung_FH); open(my $schreib_FH, ">>", $nichtgekonnte_file); for my $aufgabe (shuffle @vokabeln_array) { print "Translate the word $aufgabe\n"; chomp(my $eingabe = <STDIN>); if ($eingabe eq $vokabeln{$aufgabe}) { print "The translation is correct!\n"; } else { print "The translation is incorrect\n"; print "Do you want to save the incorrect word and answer?\n"; print "(1)Yes (2)No\n"; chomp(my $antwort=<STDIN>); if ($antwort eq '1') { print $schreib_FH "Wrong: \"$eingabe\" for \"$aufgabe\" (correct is: \"$vokabeln{$aufgabe}\")\n"; } } } close($schreib_FH);
1 2 3 4 5 6
while (my $line = <$loesung_FH>) { chomp $line; # $. ist die aktuelle zeilennummer # setze also den wert zu der zugehörigen zeile aus dem vokabel-array $vokabeln{ $vokabeln_array[$. - 1] } = $line; }