use strict; use warnings; my $data = <) { chomp; push @rows, [split ',']; } close $inFile; print join (',', @$_), "\n" for sort mySort @rows; sub mySort { return $a->[1] <=> $b->[1] || $a->[3] <=> $b->[3] || $a->[2] <=> $b->[2] || $a->[0] <=> $b->[0]; }