my @lines; while (<>) { chomp; my @line = split(','); push(@lines, \@line); } @lines = sort { $a->[0] cmp $b->[0] or $a->[1] cmp $b->[1] or $a->[2] <=> $b->[2] or $a->[3] <=> $b->[3] or $a->[4] <=> $b->[4] } @lines; foreach my $line (@lines) { print join(",", @{$line}) . "\n"; }