Thread prüfen ob String Teil eines Array ist
(14 answers)
Opened by Iggy86 at 2012-08-01 09:19
Du hast meine Antwort oben aber schon gelesen?
open(my $IN,'<'.$f) wäre besser open(my $IN,'<',$f) (ok, stört so nicht wirklich, aber das IN -> $IN hast du ja schon übernommen, also warum nicht auch das Komma?) Warum ist das while eingerückt? Sollte auf derselben Ebene wie das open sein. Das $n=$n+1; geht auch kürzer: ++$n; - aber du kannst stattdessen auch einfach $. benutzen, Perl zählt die Zeilen schon automatisch mit. Dann hast du das foreach. Da benutzt du eine benannte Variable. In dem while über die Datei aber nicht. Es ist generell besser, das genau andersrum zu machen, also in den äußeren Schleifen die Variable zu benennen und nur in kurzen inneren Schleifen $_ zu benutzen. Die beiden prints sollten weiter eingerückt sein. Das "found in $f in $z" ist irreführend. Du kannst $f in $z finden oder $z in $f, aber was soll "in in" bedeuten - ah, $f ist ein Dateiname, also schreib besser "found $z in file $f. Aber was ist $z? if ($_=~/$t/i) --> wenn du $_ benutzt, dann brauchst du das nicht zu schreiben beim RE-Match. Außerdem, da du meinen Code mit dem \Q oben nicht genommen hast: du behandelst die Suchstrings hier als REs. Willst du das? Kann sein... Ich hoffe, die Hinweise reichen erstmal. |