$ cat pm_11140267_input.txt
702005010683593,5016683593,7020000024140
702005010640383,5016640383,7020000024150
310005010532143,5016532143,7020000034001
702005010637702,5016637702,7020000034001
702005010608274,5016608274,7020000034013
702005010608274,5016608274,7020000034013
310005010609604,5016609604,7020000034013
702005010510869,5016510869,7020000034013
702005010551513,5016551513,7020000034130
702005010551513,5016551513,7020000034130
702005010679719,5016679719,7020000034222
702005010527052,5016527052,7020000034222
702005010645458,5016645458,7020000034222
####
#!/usr/bin/env perl
use strict;
use warnings;
use autodie;
my $infile = 'pm_11140267_input.txt';
my $min_to_keep = 2; # 30 for production
my %data;
{
open my $fh, '<', $infile;
while (<$fh>) {
chomp;
my (undef, $col2, $col3) = unpack 'A15xA10xA13';
push @{$data{$col3}}, $col2;
}
}
# For demo only:
print "Interim results:\n";
use Data::Dump;
dd \%data;
print "\nWanted output data:\n";
for (sort keys %data) {
next if @{$data{$_}} < $min_to_keep;
print "$_: ", join(', ', @{$data{$_}}), "\n";
}
####
Interim results:
{
"7020000024140" => [5016683593],
"7020000024150" => [5016640383],
"7020000034001" => [5016532143, 5016637702],
"7020000034013" => [5016608274, 5016608274, 5016609604, 5016510869],
"7020000034130" => [5016551513, 5016551513],
"7020000034222" => [5016679719, 5016527052, 5016645458],
}
Wanted output data:
7020000034001: 5016532143, 5016637702
7020000034013: 5016608274, 5016608274, 5016609604, 5016510869
7020000034130: 5016551513, 5016551513
7020000034222: 5016679719, 5016527052, 5016645458