my @AoA = ( ['a', '2003-11-09', 'b'], ['c', '2003-11-01', 'd'], ['e', '2002-11-01', 'f'], ['g', '2003-10-01', 'h'], ['g', '2002-10-01', 'h'], ); my @new_arr = sort {$a->[1] cmp $b->[1]} @AoA; for (@new_arr) { say "@$_"; } --output:-- g 2002-10-01 h e 2002-11-01 f g 2003-10-01 h c 2003-11-01 d a 2003-11-09 b