my $i = 1;
print ++$i + ++$i;
результат: 6
откуда берётся лишняя еденица?
* она же будет если делать + ++$i большее число раз
Leonid Sopov
my $i = 1;
print ++$i + ++$i;
результат: 6
откуда берётся лишняя еденица?
* она же будет если делать + ++$i большее число раз
Это не совсем так олег, на хпоинте спросил, дали более понятный мне ответ (http://xpoint.ru/forums/thread/43394.xhtml )
# присваиваем ячейке значение 1
my $i=1;
print ++$i + ++$i;
# В этом случае присвоение идет ДО операции сложения, т.е. в первом случае в ячейку помещается значение (1+1) 2, во втором случае к ячейке опять же ДО операции сложения добавляем 1 (2+1) и получаем 3, далее идет сложение берем значение ячейки , а оно уже равно 3 и складываем с таким же значением и получаем вполне законно 6. ч.т.д.
P.S. для сравнения можно поэкспериментировать и с $i++
Alexander O в последнем комментарии выразился более ясно чем я
Олег, разреши сломать твою логику:
perl -e ‘$i=1; print $i++ + $i++’
(Попробуй сначала решить это в голове)