#! perl -slw use strict; sub trans { my $in = shift; $in =~ tr[0-4AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz5-9] [\x00-\xff]; return $in; } chomp( my @data = ); my @sorted = sort{ trans( $a ) cmp trans( $b ) } @data; print for @sorted; __DATA__ cdef 0123456 abcd 50011 ABCD 4999 Zxyw CDEF zxyw 9999