Liebe Perl-Community,
ich habe heute begonnen einen webbasierten Vokabeltrainer zu schreiben. Das Skript wählt zufällig eine Vokabel aus einem Vokabel-Textfile und fragt sie ab. Ab dem zweiten Aufruf kriegt das Skript per POST das zuletzt abgefragte Wortpaar, um im Vokabel-Textfile zu notieren, dass das Wortpaar jetzt schon einmal mehr abgefragt wurde. Dieses Notieren bedeutet, dass es aus einer Zeile wie
house - Haus - 17 die Zeile
house - Haus - 18 machen soll.
Meine Methode funktioniert auch gut. Nur bei Vokabeln, die Klammern enthalten, gibt es ein Problem. Ich will versuchen, mein Problem mit folgendem minimalen Code zu veranschaulichen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl
use strict;
my $letztes_wort = "elusive";
my $letztes_wort_uebersetzung = "schwer zu fassen; (Begriff) schwer zu definieren";
foreach (<DATA>) {
chomp ($_);
if (/$letztes_wort - $letztes_wort_uebersetzung/) {
print "gefunden!";
}
}
__DATA__
elusive - schwer zu fassen; (Begriff) schwer zu definieren
defiance - Trotz, Missachtung
indignation - Entrüstung, Empörung
Für
defiance und
indignation funktioniert das System, nur bei
elusive schlägt der reguläre Ausdruck wegen der Klammer nicht an.
Könnt ihr mir helfen, das Skript zu reparieren?
Last edited: 2012-01-26 21:44:54 +0100 (CET)