My solution is a bit more long winded:
and produces:#!/usr/bin/perl -w use strict; use Data::Dumper; my $oldIFS=$/; $/=undef; my $stuff = <DATA>; my ($j1,@sects)=split('-----',$stuff); my $sections={}; foreach my $sect(@sects){ my @parts=split(/[\n]+/,$sect); my $sect=""; my $other_hash={}; foreach my $part(@parts){ next unless $part =~ m@=@; # ignore trash lines my($key,$value)=split("=",$part); if ( $key eq 'SECTION' ) { $sect=$value; } else { $other_hash->{$key}=$value; } } $sections->{$sect}=$other_hash; } print Dumper($sections); __END__ ----- SECTION=cr NX_NTF_ID=400017 NX_NTF_PRODUCER_ID=cr NX_NTF_PERSISTENT_ID=cr:400017 NX_NTF_NEW_DELAY_LOG= ----- SECTION=cnt NX_NTF_ID=F9F342055699954C93DE36923835A182 UUID String NX_NTF_PRODUCER_ID=cnt NX_NTF_PERSISTENT_ID=cnt:F9F342055699954C93DE36923835A182 NX_NTF_LAST_MOD_DT=02/04/2013 13:52:27
$ ./ftricks.pl $VAR1 = { 'cr' => { 'NX_NTF_NEW_DELAY_LOG' => '', 'NX_NTF_PERSISTENT_ID' => 'cr:400017', 'NX_NTF_ID' => '400017', 'NX_NTF_PRODUCER_ID' => 'cr' }, 'cnt' => { 'NX_NTF_PERSISTENT_ID' => 'cnt:F9F342055699954C93 +DE36923835A182', 'NX_NTF_ID' => 'F9F342055699954C93DE36923835A182 +UUID String', 'NX_NTF_LAST_MOD_DT' => '02/04/2013 13:52:27', 'NX_NTF_PRODUCER_ID' => 'cnt' } };
In reply to Re: Reading and storing multiple lines from a file
by blue_cowdawg
in thread Reading and storing multiple lines from a file
by shewang
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |