G'day luca76,
Your test data already appears to be sorted. Here's my take on a solution (with unsorted input):
$ perl -Mstrict -Mwarnings -E ' my @input = qw{ xxxxxx.2013-2.yyyyy xxxxxx.2012-51.yyyyy xxxxxx.2013-10.yyyyy xxxxxx.2012-50.yyyyy xxxxxx.2013-1.yyyyy }; say $_->[0] for sort { $a->[1] <=> $b->[1] or $a->[2] <=> $b->[2] } map { [ $_, split /-/, (split /\./)[1] ] } @input; ' xxxxxx.2012-50.yyyyy xxxxxx.2012-51.yyyyy xxxxxx.2013-1.yyyyy xxxxxx.2013-2.yyyyy xxxxxx.2013-10.yyyyy
-- Ken
In reply to Re: Sort an array of strings based on two fields
by kcott
in thread Sort an array of strings based on two fields
by luca76
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |