use strict; use warnings; use Data::Dumper; my @items = ( [0, 4, 2], [2, 5, 8], [-5, 0, -3], [3, 4, 0], [1, 4, 8], ); my @sorted = sort { $a->[1] <=> $b->[1] } @items; print Dumper \@sorted; __END__ $VAR1 = [ [ -5, 0, -3 ], [ 0, 4, 2 ], [ 3, 4, 0 ], [ 1, 4, 8 ], [ 2, 5, 8 ] ];