#!/usr/bin/perl -w use strict; my @array1; while () { push @array1, $_ } my @multiarray; for my $line (@array1) { push @multiarray, [split /\s/, $line]; } my @sort_ord = sort {$multiarray[$a][1] <=> $multiarray[$b][1] || $multiarray[$a][2] cmp $multiarray[$b][2]} (0..$#array1); my @sorted_multiarray; my $count = 0; for my $order (@sort_ord) { $sorted_multiarray[$order] = $multiarray[$count]; $count++; }