in reply to TestIs hash key a value contained in a hash of arrays?

Self explanatory I hope. We dereference our data structure as shown to get the array. We then use grep to search through the array for $find. the \Q....\E quotematas $find so the metachars get escaped. You could do it one one line of course my @matches = grep {/\Q$find\E/} @{$HoL{$cluster}};

my %HoL = ( 'cluster1' => [ 'remap.config', 'remap.config.hosts', 'origin.db', 'origin.db.hosts', 'local_cluster.db', 'local_cluster.hosts' ] ); my $cluster = 'cluster1'; my @array = @{$HoL{$cluster}}; my $find = 'remap.config.hosts'; my @matches = grep { /\Q$find\E/ }@array; print "Found @matches" if @matches;

Update

You should use $_ eq $find in the grep unless you need a regex. If the array is big a for loop like runrig suggested will be much faster. If you just want true/false scalar grep will save a useless array. Hope this helps

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print