I agree with GrandFather that changing $ref (a reference to an anonymous hash) to %hash (an ordinary hash) is the better approach here. But, for completeness, I will point out that the original design can be made to work by changing the line print "@{$ref{$k}} \n; to print "@{$ref->{$k}} \n"; — that is, by adding in the dereferencing operator ->. See perlreftut.
However, my major concern is with the regular expressions. As written, the first expression $k =~ /US/ will match the character sequence “US” anywhere in the string. It is always a good idea to prevent unwanted matches by limiting, as much as possible, the conditions under which the regex can match. For example:
if (($k =~ /^US/) && ($k =~ m{/$loc})) {
might be a useful step in this direction. It matches “US” only at the beginning of the string, and “Lynnwood”, “Edmonds”, etc. only when they follow a forward slash.
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re: iterating 2 arrays
by Athanasius
in thread iterating 2 arrays
by sunil9009
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |