in reply to hashes with multiple values per key

Your %hash is empty, thus nothing shows up in the Dumper, maybe you didn't post enough code? It is hard to try the code you provided, since it does not work as it is.

Also, you are slicing your %map (extremely confusing variable name) which simply assigns an anonymous list of one string to each hash key in hash %map. Your code is essentially the same as:

@island_ids = qw(1 2 3); ($map{1}, $map{2}, $map{3}) = ( ("island_id"), ("island_id"), ("island +_id") );
Thus, you have only one value in each key. Maybe you intended to slice the %hash instead?
--
seek $her, $from, $everywhere if exists $true{love};