my @sorted = sort { $b->[0] cmp $a->[0] } @data; #### my @sorted = sort { my @b = split '-', $b->[0]; my @a = split '-', $a->[0]; $b[0] <=> $a[0] || $b[1] <=> $a[1] || $b[2] <=> $a[2]; } @data;