lvalue, присваивание которому автовивифицирует элемент хеша в обоих случаях
передаётся.


2013/12/26 Анатолий Гришаев <[email protected]>

>
>
> Во втором случае передается lvalue, при обращении к нему и вылетает второе
> предупреждение.
> Можно закомментировать строчку с $val и посмотреть.
> А значение одно и тоже undef.
>
> Анатолий Гришаев.
>
>  26.12.2013, 4:32:27 пользователь Denis Ibaev ([email protected]) написал:
>>
>>
>> Привет.
>>
>> Вот такой код
>>
>> sub foo { my ($val) = @_; }
>> my %bar;
>> my $undef;
>>
>> foo($bar{undef});
>> foo($bar{$undef});
>>
>> выдаст на втором вызове функции foo() предупреждения
>>
>>
>> Use of uninitialized value $undef in hash element
>> Use of uninitialized value within @_ in list assignment
>>
>> При этом в первом вызове массив @_ будет содержать один элемент со
>> значением undef, точнее алиас для $bar{"undef"}. Во втором же так же
>> будет один элемент и как будто undef, но, судя по предупреждению, не
>> совсем он. Похоже, что алиас на неопределённый элемент %bar. В чём же
>>
>> разница этих вызовов и для чего?
>>
>> --
>> Денис Ибаев
>> --
>> Moscow.pm mailing list
>> [email protected] | http://moscow.pm.org
>>
>>
>>  --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>



-- 
Alexander
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить