Thread String Matching einer Zeile
(3 answers)
Opened by Gast at 2008-12-14 05:25
Hast du den Code irgendwo im Internet zusammengesucht?
1. Du solltest deinem Programm eine Shebang-Zeile hinzufügen. 2. $out1 hieße besser $in, da ja eingelesen und nicht - wie bei $out - geschrieben werden soll. 3. In deinem if-Statement versuchst du auf das Dateihandle $out1 einen RegEx zu matchen. Eigentlich möchtest du aber auf die jeweilige Zeile einen RegEx matchen, dazu musst du $out1 durch $_ ersetzen, oder $out1 und das =~ weglassen. 4. Einen RegEx definiert man durch m// (das / kannst du auch mit einem anderen Zeichen ersetzen, Klammern gehen auch). Benutzt man / als Trenner braucht man allerdings das m vorweg nicht mehr. Innerhalb deines RegEx: 1. Anstelle von Leerzeichen, solltest du \s+ verwenden, weil du dir nicht sicher sein kannst wie viel Platz zwischen den Einträgen ist. 2. Die \d{1,3} sollten lieber \d+ heißen, schließlich kann es ja auch mal längere Zahlen geben. 3. \.\d* prüft auf einen Punkt, gefolgt von beliebig vielen Ziffern, das ist aber nicht was du möchtest. Du brauchst folgendes: (?:\.\d+)? 4. Wieso setzt du Slashes vor die runden Klammern? edit: 5. Du solltest am Anfang und am Ende des RegEx einen Anker setzen: ^...$ MfG perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'
|