Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: converting a text into a hash datastructure

by bart (Canon)
on Aug 03, 2011 at 10:28 UTC ( [id://918220]=note: print w/replies, xml ) Need Help??


in reply to converting a text into a hash datastructure

You could do it by hand, or you could use a module: Data::Diver. You can even check the source of the latter to do the former.

Hint: you have to split the string into a list, and in turn, for each item but the last two, add a new hashref at that level if one didn't already exist. Keep that reference in a variable for the next level.

$key = 'a.b.c.d'; @list = split /\./, $key; my %hash; my $ref = \%hash; foreach (@list[0..$#list-2]) { $ref = $ref->{$_} ||= {}; } $ref->{$list[-2]} = $list[-1]; use Data::Dumper; print Dumper \%hash;

BTW I think your API interface is badly designed: you should have a separate value for the keys ("a.b.c") and for the value ("d"). As it is now, I expect trouble.

Replies are listed 'Best First'.
Re^2: converting a text into a hash datastructure
by Anonymous Monk on Aug 03, 2011 at 11:04 UTC

    BTW I think your API interface is badly designed...

    Homework assignments are sometimes designed to illuminate such common pitfalls :)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2024-04-19 12:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found