Thread array of hashes nach value durchsuchen (11 answers)
Opened by peter.p at 2013-06-19 21:17

Linuxer
 2013-06-19 22:31
#168496 #168496
User since
2006-01-27
3882 Artikel
HausmeisterIn

user image
Wenn es in allen Values suchen soll, kannst Du mit values() alle Values des Hashes ausgeben lassen und auf diese dann den grep() loslassen.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use 5.12.0;

my $search = '1';

my @AoH = (
    { name => 'bla',  alter =>  9, },
    { name => 'baba', alter => 19, },
    { name => 'foo',  alter => 11, },
);

my @matches;

for my $i ( 0 .. $#AoH ) {

    # add index if searchstring was found in hash values
    push @matches, $i
        if grep { m/\Q$search\E/  } values %{ $AoH[$i] };
}

# print result of search
say "$search matched in elements: @matches";

Last edited: 2013-06-20 14:05:10 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread array of hashes nach value durchsuchen