Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Parsing data into an Array of Hashes

by kesterkester (Hermit)
on Sep 18, 2003 at 13:10 UTC ( #292378=note: print w/replies, xml ) Need Help??

in reply to Parsing data into an Array of Hashes

This is a little clunky, and could use some whitespace-stripping, but it'll get across the general idea:

The while loop loops over your data, and the split breaks your line into a list of comma- and equal sign-separated items.

This list is then converted into an anonymous hash with the {} operator, and that hash is pushed onto the array @structure.

Note that this will work incorrectly if your values or field names have "="s or ","s in them.

#!perl use warnings; use strict; use Data::Dumper; my @structure; while (<DATA>) { chomp; push @structure, { split /,|=/ }; } print Dumper \@structure; __DATA__ Field1= a value,Field2= another value, Field3= yet another value Field1= a second value,Field2= another second value, Field3= yet anoth +er second value

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://292378]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2017-11-24 18:46 GMT
Find Nodes?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:

    Results (352 votes). Check out past polls.