Hi,
Folgende Lösung ist mir dazu eingefallen:
$Suchbegriffe="Str1 Str2 Str3";
my(@SrchList) = split(/\s+/,$Suchbegriffe);
$Srch = "(" . join("", @SrchList) . ")";
foreach $Rec ( @records ) {
$x="NichtGefunden";
if ( $AlleMuessenGefundenWerden ) {
BLOCKA: {
BLOCKB: {
foreach $_ (@SrchList) {
last BLOCKA if ( "axbxcx" !~ /$_/i );
} #foreach
$x="Gefunden";
} # BLOCKB
} # BLOCKA
print STDOUT $Rec if ( $x eq "AlleGefunden" );
} else {
$x="Gefunden" if ( $Rec =~ /$Srch/i );
}
if ( $x eq "Gefunden" ) {
print STDOUT $Rec # ...oder was auch immer...
}
} # foreach
Ich hab's zwar nur rudimentär getestet, aber vom Prinzip her funktioniert es. Außerdem werden hier nicht die einzelenen Felder aufgesplittet, was aber für Deinen Fall hier scheints sowieso nicht nötig ist.
Manfred