<?xml version="1.0" encoding="windows-1252"?>
<node id="292380" title="Re: Parsing data into an Array of Hashes" created="2003-09-18 09:14:57" updated="2005-06-10 17:44:58">
<type id="11">
note</type>
<author id="247561">
svsingh</author>
<data>
<field name="doctext">
No one's suggested it yet, so I thought I'd try something.  I was able to do this without splitting the data.  I just looped it through a regex.  If your data is all on one line, then you don't even need the outer while loop.

Hope this helps.

&lt;code&gt;
#!/usr/local/bin/perl -w
use strict;
use Data::Dumper;

my %records;
while ( &lt;DATA&gt; ) {
   chomp;
   while ( m| (\w+)\s* = \s*([^,]+)\s* |gx ) {
      $records{$1} = $2;  # add to hash
   }
}
print Dumper( \%records );


__DATA__
F1=D1, F2 = D2, F3= D3, F4 =D4,  F5  =  D5
&lt;/code&gt;

Ouput:
&lt;code&gt;
$VAR1 = {
          'F2' =&gt; 'D2',
          'F3' =&gt; 'D3',
          'F4' =&gt; 'D4',
          'F5' =&gt; 'D5',
          'F1' =&gt; 'D1'
        };
&lt;/code&gt;</field>
<field name="root_node">
292371</field>
<field name="parent_node">
292371</field>
</data>
</node>
