|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Stupnik 2:5020/400 18 Mar 2004 12:35:14 To : Artem Chuprina Subject : Re: странность --------------------------------------------------------------------------------
Hello, Artem!
AC> Скажем так, а хрен его знает, что он там попытался намудрить... Если
AC> написать $arr[0] += $arr[1] - проблемы те же?
В общем я чуток протормозил :)
Андрей прав, всё дело в copy constructor-е.
А конструкция
$arr[0] += shift(@arr);
в общем-то вполне валидна.
Хоть и приводит не совсем к ожидаемому эффекту.
$arr[0] вычисляется, и запоминается референс на то,
что получилось. Потом вычисляется правая часть.
Так как на 0-й элемент ссылается что-то там временное,
живущее до конца вычисления выражения,
то бывший 0-й элемент всё еще жив.
Прибавляется сам к себе, и умирает по
окончании вычисления выражения.
P.S. Андрей, thanx :)
--
Best regards,
Konstantin.
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
* Origin: Talk.Mail.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/648889f2ba9d.html, оценка из 5, голосов 10
|