my @data= qw( 953-FMT-FMT 954-FMT-FMT BLOGO93-FMT-FMT 955-FMT-FMT
BOXSTART2-FMT-FMT BOXEND2-FMT-FMT 956-FMT-FMT 413-FMT-FMT
DATE1-FMT-FMT 414-FMT-FMT 415-FMT-FMT 416-FMT-FMT BLOGO107-FMT-FMT
417-FMT-FMT 419-FMT-FMT 418-FMT-FMT BLOGO63-FMT-FMT 393-FMT-FMT
394-FMT-FMT BLOGO75-FMT-FMT 420-FMT-FMT 421-FMT-FMT 395-FMT-FMT );
my %data;
foreach my $data ( @data ) {
( my $sort= $data ) =~ s/(0*)(\d+)/
pack("C",length($2)) . $1 . $2 /ge;
$data{$sort}= $data;
}
print join( "\n", @data{ sort keys %data } ), "\n";
####
393-FMT-FMT
394-FMT-FMT
395-FMT-FMT
413-FMT-FMT
414-FMT-FMT
415-FMT-FMT
416-FMT-FMT
417-FMT-FMT
418-FMT-FMT
419-FMT-FMT
420-FMT-FMT
421-FMT-FMT
953-FMT-FMT
954-FMT-FMT
955-FMT-FMT
956-FMT-FMT
BLOGO63-FMT-FMT
BLOGO75-FMT-FMT
BLOGO93-FMT-FMT
BLOGO107-FMT-FMT
BOXEND2-FMT-FMT
BOXSTART2-FMT-FMT
DATE1-FMT-FMT
####
my @data= qw( 953-FMT-FMT 954-FMT-FMT BLOGO93-FMT-FMT 955-FMT-FMT
BOXSTART2-FMT-FMT BOXEND2-FMT-FMT 956-FMT-FMT 413-FMT-FMT
DATE1-FMT-FMT 414-FMT-FMT 415-FMT-FMT 416-FMT-FMT BLOGO107-FMT-FMT
417-FMT-FMT 419-FMT-FMT 418-FMT-FMT BLOGO63-FMT-FMT 393-FMT-FMT
394-FMT-FMT BLOGO75-FMT-FMT 420-FMT-FMT 421-FMT-FMT 395-FMT-FMT );
my %data;
foreach my $data ( @data ) {
( my $sort= $data ) =~ s/(0*)(\d+)/
pack("C",length($2)) . $1 . $2 /ge;
$sort =~ s/^BLOGO/~BLOGO/;
$data{$sort}= $data;
}
print join( "\n", @data{ sort keys %data } ), "\n";