in reply to Perl Sum & Count column based data

Have a look at Data::Table and see whether it can do what you want:

use strict; use warnings; use Data::Table; use List::Util qw/sum/; my $data = [ map { chomp; [ split /\s+/ ] } <DATA> ]; # read data i +nto array of arrays my $header = [ map { "col$_" } 0..@{$data->[0]}-1 ]; # create some + headers for the data my $t = new Data::Table( $data, $header, 0 ); my $summary = $t->group( [ "col0" ], + # base column [ "col2", "col2", "col3", "col3" ], + # fields [ sub{scalar @_}, sub{sum @_}, sub{scalar @_} +, sub{sum @_}, ], # aggregation functions [ "Count2", "Sum2", "Count3", "Sum3" ], + # names of result columns 0 ); + # do not display other columns print $summary->tsv; # print results in tabular form __DATA__ U1 ID1 100 280 U1 ID1 137 250 U2 ID2 150 375 U1 ID2 100 100 U3 ID1 100 600 U9 ID3 137 200

Update: Added suppression of other columns