Регулярные выражения работают вполне прилично на HTML, очищающий также ;-) Хотя после рассмотрения Красивого Супа, я вижу, почему это было бы ценным инструментом.
Модуль Data :: Dumper
чрезвычайно полезен в таких ситуациях - чтобы помочь вам понять, почему сложная структура данных не соответствует вашим ожиданиям. Например:
use Data::Dumper;
print Dumper(\%args);
Очевидно, что одно из значений в % {$ args {car_models}}
не является ссылкой на хэш. То есть структура данных не содержит того, что вы думаете. Таким образом, вы можете исправить структуру данных или изменить свой код, чтобы он соответствовал структуре данных. Поскольку вы не предоставили структуру данных, я не могу это комментировать.
Вы можете использовать ref
, чтобы проверить, содержит ли $ _
ссылку на хэш, прежде чем пытаться доступ к члену.
if ( ref eq 'HASH' and exists $_->{year} ) {
push(@not_sorted_models, UnixDate($_->{year},"%o"));
}
Основываясь на вашем комментарии и моих способностях ESP, я предполагаю, что эти значения являются отметками времени. Итак, я предполагаю, что вы пытаетесь найти год по значению временной метки (количество секунд от эпохи). В этом случае вам, вероятно, понадобится localtime
или gmtime
:
my $year = 1900 + (localtime)[5];
C:\Temp> perl -e "print 1900 + (localtime(1249998666))[5]" 2009
Без дополнительной конкретной информации о том, что ваша структура данных должна содержать,