in reply to Parse a file and store it in hash of hashes
I find YAML is usually easier to read for debugging structures than Data::Dumper
#!/usr/bin/perl # http://perlmonks.org/?node_id=1179628 use strict; use warnings; my $rec; my %HoH; while(<DATA>) { if( /^\[(.*?)\]/ ) { $rec = $1; } elsif( defined $rec and /(\S+)\s*=\s*(".*"|\S+)/ ) { $HoH{$rec}{$1} = $2; } } use YAML; print Dump \%HoH; __DATA__ [CELL_NAME1] COMMENT = "Perl parsing" FIRST = "TEST1" SECOND = "ID1" THIRD = 123 FOURTH = "THREE" FIFTH = 12345 SIXTH = 6789 SEVENTH = QWERTY [CELL_NAME2] COMMENT = "Tester" FIRST = "TEST2" SECOND = "ID2" THIRD = 1234 FOURTH = "FOUR" FIFTH = 12345 SIXTH = BOARD SEVENTH = MOUSE [CELL_NAME3] COMMENT = "Parser" FIRST = "TEST3" SECOND = "ID3" THIRD = 12345 FOURTH = "FIVE" FIFTH = 12345 SIXTH = PAD SEVENTH = KEY
|
---|