Как вы воспроизводите «Не можете использовать неопределенное значение в качестве ссылки на символ» в Perl? - PullRequest
1 голос
/ 20 июля 2011
Can't use an undefined value as a symbol reference 

Кто-нибудь знает, как его воспроизвести?

Ответы [ 3 ]

4 голосов
/ 20 июля 2011
print $bar 1;

выдает ошибку.Вы можете увидеть хорошее объяснение того, что это означает в этой ветке perlmonks

, как объяснено splain:

Can't use an undefined value as a symbol reference (#1)
(F) A value used as either a hard reference or a symbolic reference must
be a defined value.  This helps to delurk some insidious errors.
3 голосов
/ 20 июля 2011

Вот самая простая форма:

say *{my $a}{SCALAR}; # OR say ${ *{my $a} };
1 голос
/ 20 июля 2011
perl -we '$x = shift; *$x = sub {42}; print $x->()'

Этот код печатает 42, если вызывается с ЛЮБЫМ аргументом (включая ''), но выдает необходимое предупреждение без аргументов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...