[Moscow.pm] $array_ref = [] vs. @$array_ref = ()

Nikita Zubkov nikzubkov на gmail.com
Пн Сен 3 10:21:14 PDT 2012


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

3 сентября 2012 г., 19:16 пользователь Andrew Shitov <andy на shitov.ru>написал:

> А в чем разница между попыткой очистить массив через присвоение 1) []
> ссылке на него и 2) () разыменованному значению?
>
> $ perl -MData::Dumper -E'@a=(2,3); f(\@a); say Dumper(\@a); sub f{my
> ($a) = @_; $a = []}'
> $VAR1 = [
>           2,
>           3
>         ];
>
> $ perl -MData::Dumper -E'@a=(2,3); f(\@a); say Dumper(\@a); sub f{my
> ($a) = @_; @$a = ()}'
> $VAR1 = [];
>
> Что происходит в первом случае?
>
> --
> Andrew Shitov
> ______________________________________________________________________
> andy на shitov.ru | http://shitov.ru
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
С уважением,
Никита Зубков
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20120903/4788c56a/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm