Forum Webscript.Ru
Программирование => Perl => Тема начата: Phoinix от 17 Ноября 2006, 21:11:38
-
> perl -e \'print ($i = 1, $i = 2, $i = 3, "\\n")\'
333
>
???
-
что именно непонятно?
попробуйте perl -le \'print $i = 1, $i = 2, $i = 3,"\\n",$i\'
-
arto
Ну и что? результат:
333
3
А я, как бы, предполагаю:
123
3
-
уф.
попробуйте словами описать, что делается, и, возможно, вы поймете что происходит.
-
arto
Результатом операции приравнивания должен быть значение справа от знака равенства...
my $i;
print $i = 0;
print $i = 1;
print $i = 2;
Выдаст:
012
Но в списочном контенте, почему-то все результаты равенства становятся равным последнему элементу...
Вопрос: почему так?
-
сначала выполняется список, и $i == 3, потом печатается три раза.
-
arto
Умно... что он делает и так понятно...
Он должен последовательно обрабатывать список и выдавать соответствующие значения для элемента списка, но он это не делает...
Вопрос: почему?
-
еще раз, он сначала вычисляет список.
-
arto
Ну и что? причем здесь вычисление и то, что он возвращает
На самом деле нет... уже разобрались, так и должно быть...