[Moscow.pm] reverse изменяет аргумент

Ruslan Zakirov ruz на bestpractical.com
Пн Окт 1 13:21:37 PDT 2012


2012/10/1 Denis Evdokimov <evdokimov.denis на gmail.com>:
> P.S. Я понимаю по каким причинам сделано именно так.
> Но меня всё равно коробит от мысли, что функции, которые никак не должны
> менять изначальный массив, позволяют его менять.

Вы про aliasing? Следующее тоже работает:

chomp foreach values %hash;

Я иногда похожими конструкциями пользуюсь - быстро и выглядит
достаточно читабельно.

> В моём представлении такой код НЕ должен менять @a
> perl -MData::Dumper -e'my @a=qw(a b c); foreach(reverse sort @a){$_.="!!!"}
> print Dumper \@a'

В моем представлении такой код должен либо менять, либо бросать
ошибку. Не менять ничего (типа меняется копия, которая тут же
теряется) еще хуже решение.

> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
Best regards, Ruslan.


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