Here is how I would approach it:
Output:use warnings; use strict; my %barcode_hash = ( 1 => ['AGCTCGTTGTTCGATCCA','GAGAGATAGATGATAGTG','TTTT_CCCC',0], 2 => ['AGCTCGTTGTTCGATCCA','GAGAGATAGATGATAGTG','TTTT_AAAA',0], 3 => ['AGCTCGTTGTTCGATCCA','GAGAGATAGATGATAGTG','TTTT_BBBB',0], 4 => ['AGCTCGTTGTTCGATCCA','GAGAGATAGATGATAGTG','TTTT_AAAA',0], ); Find_and_Increment ('TTTT_AAAA'); Find_and_Increment ('TTTT_CCCC'); Find_and_Increment ('TTTT_AAAA'); #-------------------- sub Find_and_Increment{ my ($pair) = @_; for my $k (keys %barcode_hash){ next unless ( my $aref = $barcode_hash{$k} ) -> [2] eq $pair; $aref->[3]++; print "$pair found at $k, $aref->[3] time(s)\n"; } }
$ perl search_hash.pl TTTT_AAAA found at 4, 1 time(s) TTTT_AAAA found at 2, 1 time(s) TTTT_CCCC found at 1, 1 time(s) TTTT_AAAA found at 4, 2 time(s) TTTT_AAAA found at 2, 2 time(s)
...Disinformation is not as good as datinformation. Don't document the program; program the document.
In reply to Re^3: search for particular elements of hash with multiple values
by NetWallah
in thread search for particular elements of hash with multiple values
by pmpmmpmp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |