Thread Zeichenkette in Datei suchen (6 answers)
Opened by dschingis at 2007-10-15 12:58

Linuxer
 2007-10-15 13:14
#100823 #100823
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Hi,

1.
Benutze "use strict;" und "use warnings;" in Deinen Skripten.
Ersteres zwingt Dich zu sauberer Variablendeklaration und zweiteres gibt Dir Warnungen, wenn etwas unsauber zu sein scheint (z.B. Verwendung nicht initialisierter Variablen)
strict
warnings

2.
Würde ich für eine simple Suche die Datei nicht in einen Array lesen, sondern zeilenweise auslesen und die Suche umsetzen:
Code (perl): (dl )
1
2
3
4
while ( my $line = <$filehandle> ) {
  if ( $line = m/$regex/ ) {
  }
}


3.
Du wendest Deine Suche auf jede Zeile an, d.h. Du kriegst für jede Zeile eine Ausgabe, ob der/die Suchstrings gefunden wurden, oder nicht.

4.
Dein Vergleich ist eine Zuweisung (=), noch nicht einmal ein numerischer Vergleich (==), das kann so nicht funktionieren.
Wenn die Strings identisch sein sollen, musst Du lexikalisch vergleichen (eq).

Wenn Du ein Vorkommen prüfen willst, solltest Du index() verwenden:
Code (perl): (dl )
1
2
3
if ( index( $line, $suche, 0 ) >= 0 ) {
  # suche gefunden
}


[edit] Punkt 4. korrigiert.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Zeichenkette in Datei suchen