in reply to Find duplicate fields and merging data in a text file
while ( <> ) { my ( $part_num, undef, $designator ) = split /,/, $_, 3 or next; push @{ $data{ $part_num } }, $designator =~ /[^",\s]+/g; } for my $part_num ( sort keys %data ) { my $quantity = @{ $data{ $part_num } }; print "$part_num,$quantity,", $quantity == 1 ? '' : '"', join( ',', sort { my ( $aL, $aR ) = $a =~ /(\D+)(\d+)/; my ( $bL, $bR ) = $b =~ /(\D+)(\d+)/; $aL cmp $bL || $aR <=> $bR } @{ $data{ $part_num } } ), $quantity == 1 ? '' : '"', "\n"; }
|
|---|