Leser: 3
4 Einträge, 1 Seite |
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
#!/usr/bin/perl $suche = "nummer"; @list = ""; foreach $file (glob("*.txt")) { open(READ,"$file") || "Fehler beim oeffnen"; push (@list,<READ>); close(READ); } $count = ""; foreach $movie ("@list") { $count++; if ($movie=~ /$suche/i) { print "Gefunden : ","@list[$count]"; } else { print "Nix gefunden"; } }
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 52 53 54 55 56 57 58 59 60 61 62
#!/usr/bin/perl ## bitte immer strict und warnings nutzen: use strict; use warnings; ## wenn man "strict" nutzt, ## muß man alle Variablen mit "my" initialisiern my $suche = "nummer2"; ##das ist falsch: # @list = ""; ## so muß man das schreiben # my @list = (); ## oder einfach my @list; foreach my $file (glob("*.txt")) { ## bitte "|| die" nicht nur "||" das funktioniert nicht! ## beim öffnen kann man auch ausgeben lassen, ## was genau falsch gelaufen ist. ## bitte das das "open" mit den drei Werten nutzen open(READ,'<',$file) || die "Fehler beim oeffnen ($!)"; push (@list,<READ>); close(READ); } ## $count soll doch eine Zahl sein oder? ## perl ändert das zwar automatisch, ## aber schön ist das nicht. #$count = ""; my $count=0; ## nicht @list nicht in Anfühungszeichen!!! ## sonst fügst du die Einträge der Liste als String zusammen! foreach my $movie (@list) { $count++; if ($movie =~/$suche/i) { ## die Ausgabe ist etwas umständlich ## und zudem noch falch. ## auf ein Array greift man mit $list[$count] zu # print "Gefunden : ","@list[$count]"; ## die Zeile steht doch schon in $movie. ## zudem ist die Ausgabe immer, ## da der erste Eintrag in der liste in $liste[0] ## $count hats du aber schon um eins erhöt, ## und ist für die erste Zeile 1 nicht 0 wie es richtig wäre. ## daher dein Probleme. ## allso entweder: # print "Gefunden : $liste[$count]\n"; ## oder print "Gefunden: $movie\n"; } else { ## Ist dir nie aufgefallen das die Ausgabe ohne newlines war? ## und das es insgesammt nie drei Ausgaben waren? print "Nix gefunden\n"; } }
Gast+2008-06-05 05:48:02--Code (perl): (dl )open(READ,'<',$file) || die "Fehler beim oeffnen ($!)";
1 2 3
open( my $READ, '<', $file ) or die "Fehler beim oeffnen von Datei '$file' ($!), died at"; push( @lines, <$READ> ); close( $READ );
Gast+2008-06-05 05:48:02--Code (perl): (dl )if ($movie =~/$suche/i)
if ($movie =~/\Q$suche\E/i)
my $suche = qr(irgendwas);
4 Einträge, 1 Seite |