У меня есть этот фрагмент, который сортирует значения, например, Title2 2005; Title2 1998; Title3 1994; и т.д. к десятилетию и работает без нареканий. Но мне нужно добавить дополнительную сортировку уже отсортированных десятилетий - сначала в порядке убывания, а затем в алфавитном порядке. Если я использую подпрограмму second_sort, я получаю сообщение об ошибке «Не удается найти метод объекта через пакет». Есть ли у меня небольшая ошибка в моем коде, или моя логика полностью неверна, и я должен искать другой подход.
Спасибо.
use autodie;
use strict;
use warnings;
use HTML::TreeBuilder;
my %sort = ();
push (@{$sort{$decade}}, $t );
for my $decade ( sort { $b <=> $a } keys %sort ) {
my @td = map { $_->as_HTML("<>&","\t",{}) } second_sort( @{$sort{$decade}} );
}
sub second_sort {
my @sorted = map { @$_ }
sort { $b->[1] <=> $a->[1] || lc $a->[0] cmp lc $b->[0] }
map {
my ($title, $year) = ($_->as_trimmed_text =~ /(.*?)\((\d+)\).*/);
[$title, $year];
} @_;
return @sorted;
}