jaydstein has asked for the wisdom of the Perl Monks concerning the following question:
I'm relatively new to perl and I'm at the point where I don't 100% understand the nitty gritty of what I am doing (but I'm trying ;) ). I'm not getting expected behavior from my code. I have a hash that contains either a scalar or an array, and I need to print, line-by-line, each value contained in a hash.
Here's my code:
my $primaryFeatures = { 'foo', ('fool', 'food', 'foot'), 'bar', ('barricade'), }; while (my ($key, $value) = each(%$primaryFeatures)){ print "($key, $value)\n"; }
Here's what I want:
(foo, fool)
(foo, food)
(foo, foot)
(bar, barricade)
But one of the items in the array value ('fool', 'food', 'foot') is being picked up and interpreted as a key instead of a value. Here is what I am getting:
(foo, fool)
**(food, foot)**
(bar, barricade)
I've looked into the 'values' function. I could make that work... but sifting through the the keys and values for only the values is a little messy. What is the best way to do this?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Hash value printing... WITH ARRAYS *dun dun dun*
by toolic (Bishop) on Feb 06, 2012 at 22:49 UTC | |
|
Re: Hash value printing... WITH ARRAYS *dun dun dun*
by kcott (Archbishop) on Feb 06, 2012 at 23:46 UTC | |
|
Re: Hash value printing... WITH ARRAYS *dun dun dun*
by mcdave (Beadle) on Feb 07, 2012 at 04:03 UTC | |
|
Re: Hash value printing... WITH ARRAYS *dun dun dun*
by Anonymous Monk on Feb 06, 2012 at 22:56 UTC | |
|
Re: Hash value printing... WITH ARRAYS *dun dun dun*
by InfiniteSilence (Curate) on Feb 07, 2012 at 00:34 UTC | |
|
Re: Hash value printing... WITH ARRAYS *dun dun dun*
by JavaFan (Canon) on Feb 07, 2012 at 00:32 UTC |