use strict; use warnings; use constant KEY => 1; my @sort_data; while (my $record = ) { my $key = (split(/,/, $record))[KEY]; push @sort_data, [$record, $key]; } foreach my $pair (sort {$a->[1] cmp $b->[1]} @sort_data) { print "$pair->[0]"; }