use strict; use warnings; open my $fh, "<", "employees" or die "Cannot Open: $!"; my @employees; while (<$fh>) { chomp; if (/(.*):(1.*):(.*):(.*):(.*)/) { push @employees, [ $1, $2, $3, $4, $5 ]; } } close $fh; @employees = sort { $a->[2] cmp $b->[2] } @employees; for (@employees) { print join( "\t", @$_[ 2, 3, 0, 4 ] ), "\n"; }