steckl: Datei - Zeile springen

Beitrag lesen

Hi,

ich hab eine Datei (Handle ist "LESEN"). Wenn ich einen bestimmten RegExp treffe, dann möchte ich diesen Ausgeben und die komplette nächste Zeile. Hab das jetzt so gelöst, aber find das nicht wirklich optimal:

while(<LESEN>)
{
if($x == 1) {print "$_";$x=0;next}
if( $_ =~ /BLA(\w+)/) { print "$1 ";$x=1}
}

Wie kann ich das eleganter machen?

Ich wuerde die ganze Datei in einen String einlesen und auf diesen dann den RegExp anwenden.
Das einlesen sollte kein Problem darstellen.

Beispiel fuer das Verarbeiten:

  
#!/usr/bin/perl -w  
  
use strict;  
  
my $fileString = "  
asdfsdf  
BLAafddsfdsfdf  
hier  
asdfsdf  
asdfsdf  
BLAasdfsdfdsf  
dsfdsfdf  
";  
  
  
while($fileString =~ /BLA\w+\n(.*)\n/g)  
{  
    print "treffer: $1\n";  
}  

Je nach Betriebssystem kann es sein, dass ein Zeilenumbruch anders ist. dann muss das "\n" im regulaeren Ausdruck entsprechend angepasst werden.

mfG,
steckl