in reply to search for particular elements of hash with multiple values
G'day pmpmmpmp,
"... if you want to search a hash for a key ... my hash has become more complicated ..."
Presumably you started with a simple hash; you now have a complex data structure called a Hash of Arrays (HoA). See "perldsc - Perl Data Structures Cookbook" for information on processing these, and other, complex data structures.
From your description, you're no longer interested in the keys at all, just the values. You can perform your search and increment with this line:
$_->[2] eq $barcode_pair_35 and ++$_->[3] for values %$VAR1;
Here's my test code:
#!/usr/bin/env perl use strict; use warnings; use Data::Dump; my $VAR1 = { '1' => [ 'AGCTCGTTGTTCGATCCA', 'GAGAGATAGATGATAGTG', 'TTTT_CCCC', +0 ], '2' => [ 'AGCTCGTTGTTCGATCCA', 'GAGAGATAGATGATAGTG', 'TTTT_AAAA', +0 ] }; dd $VAR1; my $barcode_pair_35 = 'TTTT_CCCC'; $_->[2] eq $barcode_pair_35 and ++$_->[3] for values %$VAR1; dd $VAR1;
Output:
{ 1 => ["AGCTCGTTGTTCGATCCA", "GAGAGATAGATGATAGTG", "TTTT_CCCC", 0], 2 => ["AGCTCGTTGTTCGATCCA", "GAGAGATAGATGATAGTG", "TTTT_AAAA", 0], } { 1 => ["AGCTCGTTGTTCGATCCA", "GAGAGATAGATGATAGTG", "TTTT_CCCC", 1], 2 => ["AGCTCGTTGTTCGATCCA", "GAGAGATAGATGATAGTG", "TTTT_AAAA", 0], }
— Ken
|
|---|