sub gSort { ($a =~ /B(\d+)/)[0] <=> ($b =~ /B(\d+)/)[0] or ($a =~ /U(\d+)/)[0] <=> ($b =~ /U(\d+)/)[0] } #### { no warnings 'redefine'; do "$path/Sort.cfg.pl"; } my @sorted = sort gSort @data;