Почему я добираюсь “Разве, использование не может представить в виде строки как ХЕШ касательно” ошибки, когда я пытаюсь получить доступ к элементу хеша?

Регулярные выражения работают вполне прилично на HTML, очищающий также ;-) Хотя после рассмотрения Красивого Супа, я вижу, почему это было бы ценным инструментом.

9
задан Sinan Ünür 12 August 2009 в 22:31
поделиться

2 ответа

Модуль Data :: Dumper чрезвычайно полезен в таких ситуациях - чтобы помочь вам понять, почему сложная структура данных не соответствует вашим ожиданиям. Например:

use Data::Dumper;
print Dumper(\%args);
14
ответ дан 4 December 2019 в 08:34
поделиться

Очевидно, что одно из значений в % {$ 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

Без дополнительной конкретной информации о том, что ваша структура данных должна содержать,

11
ответ дан 4 December 2019 в 08:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: