Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

(tye)Re: varying length multi-dimensional hashes

by tye (Cardinal)
on Oct 04, 2000 at 23:29 UTC ( #35317=note: print w/ replies, xml ) Need Help??


in reply to varying length multi-dimensional hashes

Okay, here is one way to populate the hash:

#!/usr/bin/perl -w use strict; my %hash; while( <> ) { chomp $_; my @trib= grep { "" ne $_ } split /(...)/, $_; my $ref= \\%hash; while( @trib ) { $ref= \$$ref->{shift @trib}; } $$ref++; }

Note how I avoided having to save shift @trib to index into the next subhash by keeping a reference to the slot for the hash value instead of a reference to the hash.

If that code makes sense to you right away, then you are either sick, overlooking something, or do way too much work with Perl references. (:

P.S. I was seriously disappointed that

my @trib= split /(?<=\G...)/, $_;
doesn't work because split doesn't set pos($_) the way /(?<=\G...)/g would.

        - tye (but my friends call me "Tye")


Comment on (tye)Re: varying length multi-dimensional hashes
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (13)
As of 2015-07-03 12:47 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 (53 votes), past polls