Ich würde das so machen:
my @lines = <$fh>;
chomp @lines;
my ($found1) = grep /^0202xx /, @lines
or die "0202xx nicht gefunden";
my ($found2) = grep /^040xx /, @lines
or die "040xx nicht gefunden";
print "$found1\n$found2\n";
Du hast ja nicht genau geschrieben, ob "xx" hier Platzhalter in Suchmustern sein sollen oder bestimmte Zahlen, die Du nur nicht veröffentlichen möchtest.. Aber macht ja nichts, Du kannst im obigen Beispiel die regulären Ausdrücke beliebig anpassen. In meinem Beispiel wird gesucht nach einer Zeile, die mit "0202xx" anfängt und dann ein Leerzeichen hat.
Edit: Vielleicht habe ich Dein Problem mit der Reihenfolge auch nicht richtig verstanden. In dem Fall solltest Du mal ein Beispielinput posten, wo die Nummern auch mehrfach vorkommen und dann sagen, was jetzt in welcher Reihenfolge wie gesucht werden soll. Wenn es Dir wichtig ist, was bei mehreren gleichen/ähnlichen Nummern ausgegeben wird, dann ist es eher schlecht, ein Beispielinput anzugeben, wo die alle nur einmal vorkommen, und dann diese "xx" nicht mal richtig zu definieren. Ich nehme mal an, dass "xx" nicht wirklich Buchstaben in der Telefonnummer sind?
Last edited: 2014-03-14 14:14:31 +0100 (CET)