component => {
version => "1.23.4.567",
sources => {
"filename1" => "checksumfile1",
"filename2" => "checksumfile2",
"filename3" => "checksumfile3",
}
####
component=HF
version=NULL
sourcefile=filename1
sourcesum=checksumfile1
sourcefile=filename2
sourcesum=checksumfile2
sourcefile=filename3
sourcesum=checksumfile3
component=SVM
version=10.0.70.102
sourcefile=filename4
sourcesum=checksumfile4
####
use strict;
use Data::Dump qw(dump);
my %HoH = ();
my $rec;
my $component;
while ( ) {
chomp;
next unless m/^\S+/;
if( m/^component=(.*)/ ) {
$component = $1;
$rec = {};
$HoH{$component} = $rec;
}
elsif( m/^version=(.*)/ ) {
$rec->{"version"} = $1;
}
else
{
my ($key, $value) = split /=/;
$rec->{$key} = $value;
}
}
for my $component ( keys %HoH ) {
print "$component: ";
for my $key ( keys %{ $HoH{$component} } ) {
print "$key=$HoH{$component}{$key} ";
}
print "\n";
}
dump %HoH;
__DATA__
component=HF
version=NULL
sourcefile=filename1
sourcesum=checksum1
sourcefile=filename2
sourcesum=checksum2
sourcefile=filename3
sourcesum=checksum3
component=SVM
version=10.0.70.102
sourcefile=filename4
sourcesum=checksum4