Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
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
Replies are listed 'Best First'.
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 musing on the Monastery: (11)
As of 2015-07-08 01:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls