>perl -wMstrict -le "my @ra = qw(abc1 abc32 abc64 abc8 abc16); ;; my $wide = 15; my @sorted = map unpack(qq{x$wide a*}), reverse sort map sprintf('%0*d%s', $wide, m{ (\d+) \z }xms, $_), @ra ; ;; print qq{@sorted}; " abc64 abc32 abc16 abc8 abc1