Primel: grep Rückgabewert

Beitrag lesen

Naja jetzt muss ich halt ein paar Zeilen mehr schreiben ;(

system("grep "133.8.165.2 " $ZONE/\");
$exit_code1 = ($?>>8);
system("grep "133.8.177.2 " $ZONE/\
");
$exit_code2 = ($?>>8);
if ($exit_code1 != 1 || $exit_code2 != 1)
{
print "yeah";
}

Wozu so umständlich? Perl hat eine exzellente grep-Funktion, die mindestens so leistungsfähig ist wie das grep-Programm deines Unix. Und um mehrere Dateien nach einem Shell-Pattern zu suchen, gibt es die glob-Funktion. Und die beiden Pattern kann man auch noch zu einem kombinieren.

Bist Du Dir übrigens bewußt, das bei den meisten grep-Implementationen der Punkt eine besondere Bedeutung hat?

Alexander

Hi

wäre das dann in etwa die Alternative?

foreach my $filename (glob("$ZONE/*")) {
open (READ,$filename) or die "$!";
@bar=<READ>;
print grep(/133.8.165.2/, @bar);

wobei ich ja true oder false benötige und nicht den output;

close (READ) or die "$!";
}

Oder hast du mal ein Beispiel für ein unix-emulierter "grep", wie man das am besten mit glob&grep in Perl macht?

ciao
Primel