use Language::MySort; *weird_sort = lang_sort( # place vowels ahead of consonants qw( a e i b c d f g h j ), { # map uppercase characters to lowercase identical => [qw( aA bB cC dD eE fF gG hH iI jJ )], # ignore - and . ignore => "-.", } );