my @a = ("1-1-2", "6-1-2", "3-1-4"); my @b = sort { (split /-/, $a)[0] <=> (split /-/, $b)[0] && (split /-/, $a)[1] <=> (split /-/, $b)[1] && (split /-/, $a)[2] <=> (split /-/, $b)[2] } @a; print "@b\n";