my @list = ( '1,cat', '2,dog', '22,mouse', '11,eel', '001,elk', '13,mink');
my %unsorted = map { split /,/ } @list ;
my @sorted = map { $_.','.$unsorted{$_} } sort { $a <=> $b } keys %unsorted;
####
my @list = ( 'cat,1', 'dog,2', 'mouse,22', 'eel,11', 'elk,001', 'mink,13');
my %unsorted = map { reverse split /,/ } @list ;
my @sorted = map { $unsorted{$_}.','.$_ } sort { $a <=> $b } keys %unsorted;
##
##
my @list = ( 'cat,1', 'dog,1', 'mouse,22', 'eel,22', 'elk,001', 'mink,13');
# as pointed by choroba, this can be put simpler
# my %unsorted = map { $_ => [ reverse split /,/ ]->[0] } @list ;
my %unsorted = map { $_ => [ split /,/ ]->[-1] } @list ;
my @sorted = sort { $unsorted{$a} <=> $unsorted{$b} } keys %unsorted;