http://www.perlmonks.org?node_id=292378


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