Are you looking for something similar to :
use strict;
use Data::Dumper;
my %hash;
while (<DATA>) {
chomp;
my ($key, $value) = split /\|/, $_;
my @values = split /,/, $value;
if (defined $hash{$key}) {
push @{$hash{$key}}, \@values;
}
else {
$hash{$key} = [\@values];
}
}
print Dumper \%hash;
__DATA__
9344220001|sei10720013,21/07/2009-00-00-00,23/07/2009-12-34-44
9344220001|sei10720014,23/07/2009-20-00-23
9344220002|sei10720015,21/07/2009-00-00-00,23/07/2009-12-34-44
9344220003|sei10720016,23/07/2009-20-00-23
9344220003|sei10720017,23/07/2009-20-00-23
9344220003|sei10720018,23/07/2009-20-00-23
Output is as followed:
$VAR1 = {
'9344220003' => [
[
'sei10720016',
'23/07/2009-20-00-23'
],
[
'sei10720017',
'23/07/2009-20-00-23'
],
[
'sei10720018',
'23/07/2009-20-00-23'
]
],
'9344220002' => [
[
'sei10720015',
'21/07/2009-00-00-00',
'23/07/2009-12-34-44'
]
],
'9344220001' => [
[
'sei10720013',
'21/07/2009-00-00-00',
'23/07/2009-12-34-44'
],
[
'sei10720014',
'23/07/2009-20-00-23'
]
]
};
I hope this helps.
|