Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: Generating Hash-of-List using map?

by hdb (Prior)
on Sep 24, 2013 at 06:17 UTC ( #1055446=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Generating Hash-of-List using map?
in thread Generating Hash-of-List using map?

Oh, #@%$"!

I admit defeat. A sort is probably not what the OP specified. One could build a full temporary hash in the map but that would be cheating as well (also relies on $a not been used for anything else before):

my %hash = map { /^([^-]*)-(.*)$/; exists $$a{$1}? (push(@{$$a{$1}},$2 +) and ()): ( $1=>$$a{$1}=[$2] ) } @CELLS;

So there is really no way around first declaring the hash and then filling it. What a pity!


Comment on Re^3: Generating Hash-of-List using map?
Select or Download Code
Re^4: Generating Hash-of-List using map?
by LanX (Canon) on Sep 24, 2013 at 10:19 UTC
    > So there is really no way around first declaring the hash and then filling it. What a pity!

    O come on! Just "cheat"! ;-)

    DB<113> @CELLS = ("A-1", "B-2", "C-3", "A-4", "B-5", "C-6", "A-7", " +B-8", "C-9") => ("A-1", "B-2", "C-3", "A-4", "B-5", "C-6", "A-7", "B-8", "C-9") DB<114> %hash = map { /^([^-]*)-(.*)$/; if( $1 eq ($a//'-') ) { push + @$b, $2; () } else { ( $a = $1 => $b = [ $2 ] ) } } sort @CELLS; => ("A", [1, 4, 7], "B", [2, 5, 8], "C", [3, 6, 9])

    Cheers Rolf

    ( addicted to the Perl Programming Language)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1055446]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2014-09-19 01:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (129 votes), past polls