linux-l: wiedermal perl

Rene Dietze rene at endel-dietze.de
Mo Okt 29 18:51:44 CET 2001


>>>>> "Ulrich" == Ulrich Wiederhold <U.Wiederhold at gmx.net> writes:

    Ulrich> Hallo, ich habe folgendes Problem.  Ich möchte im key
    Ulrich> eines hashs nach einem String suchen, z.B. mehreren
    Ulrich> Wörtern. Die Sucher soll erfolgreich sein, wenn alle diese
    Ulrich> Wörter in beliebiger Reihenfolge gefunden werden.


    Ulrich> $string = "I like music";

    Ulrich> my (@search) = split /\s/, $string;

    Ulrich> foreach my $key (keys %locator_hash) { my $counter = 0;
    Ulrich> foreach my $word (@search) { if ($key =~ /$word/) {
    Ulrich> $counter++; } } if ($counter == $#search+1) {
    Ulrich> push(@result, $locator_hash{$key}); } }


Ich wuerde das so versuchen

$string =~ s/\s/\|/g;
@result = grep(/$string/,keys(%locator_hash));

Gruss Rene




Mehr Informationen über die Mailingliste linux-l