my %hash; $hash{$1} = $2 while $var =~ /storeID = (\d+)\s+(.*?)end/gs; #### my $criterion = ...; print "storeID = $_\n", $hash{$_} for grep { $hash{$_} =~ /$criterion/ } keys %hash;