use strict; $_ = ; my $cnt = tr/,/,/ + 1; my @fields; push @fields, split /,/ while ; chomp(@fields); my %data; push @{$data{$_ % $cnt}}, $fields[$_] for 0..@fields-1; my @row; for (keys %data) { @row = sort @{$data{$_}}; print "$_ - @row\n"; } __END__ num1,num2,num3 123,345,578 345,349,340 12,348,023 534,90283,230 239,394,283