Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Use of uninitialized value ... |
Автор: infarch 21.6.2013, 11:55 | ||
Помогите пожалуйста понять что означает этот варнинг: "Use of uninitialized value within @_ in list assignment at /bb_projekt/docia/perl/lib/Backbone/TB.pm line 289." В указанном модуле в строке 289 происходит присваивание:
Ошибка не моя, из чужого кода. Я даже воспроизвести не могу ( . |
Автор: ginnie 21.6.2013, 12:17 | ||
infarch, с приведенным кодом появление указанной ошибки маловероятно. У меня воспроизводится с таким:
|
Автор: infarch 21.6.2013, 12:38 |
Так и у меня воспроизводится. Но вот в том то коде не хеш в параметрах стоит, а скаляр... |
Автор: infarch 21.6.2013, 13:26 | ||||
Варнинг я устранил, но вот почему он вообще появлялся не могу понять. Там была вот такая строка:
Проблема возникала когда функция $directory_obj->get("ParentDirectory_ID") возвращала undef. Причем если переписать вот так:
то варнинга опять таки небыло. |
Автор: ginnie 21.6.2013, 13:53 | ||||||
infarch, это мистика какая-то, а что выдает в случае явного указания undef в ключе хэша?
P.S. на тестовый код
perl v5.16.2 выдает предупреждения
похоже $hash{undef()}, если ключа undef() в хэше нет - это какое-то специальное значение, о котором и выводится отдельное предупреждение |
Автор: infarch 21.6.2013, 16:11 |
Я уже к сожелению не протестирую. Клиент возрадовался что варнинг пропал, запустил сайт и больше опытов делать не будет. Разве что еще какой варнинг найдет ) |
Автор: infarch 21.6.2013, 16:11 |
Я уже к сожелению не протестирую. Клиент возрадовался что варнинг пропал, запустил сайт и больше опытов делать не будет. Разве что еще какой варнинг найдет ) |
Автор: Cyr 13.10.2015, 11:14 | ||
У меня есть процедура
При выполнении my $pdu = $CSTAapdu->encode... warning: "Use of uninitialized value in concatenation (.) or string at D:/strawberry/perl/vendor/lib/Convert/ASN1/_encode.pm line 60 (#1) (W uninitialized) An undefined value was used as if it were already defined. It was interpreted as a "" or a 0, but maybe it was a mistake. To suppress this warning assign a defined value to your variables." Не знаю, в чём проблемма и как исправить |
Автор: arto 13.10.2015, 12:39 |
похоже у вас ошибка при инициализации парсера. мобно посмотреть, что у _encode.pm в строке 60 |
Автор: Cyr 13.10.2015, 12:43 |
arto, там строка $_[4] .= $op->[cTAG]; |
Автор: arto 19.10.2015, 08:25 |
отследить, почему в $op->[cTAG] undef. |