REPL в основном делает say (my $var = 1,2,3)
.Поскольку результат этого выражения равен a List
, он будет отображаться как (1 2 3)
.Внутри этого выражения только первому элементу этого списка присваивается $a
, следовательно, это Int
.
Так почему же он не предупредил об этом?Это, как вы указали:
$ perl6 -e 'my $a = 1,2,3'
WARNINGS for -e:
Useless use of constant integer 2 in sink context (lines 1, 1)
Useless use of constant integer 3 in sink context (lines 1, 1)
, тогда как это не так:
$ perl6 -e 'say (my $a = 1,2,3)'
(1 2 3)
Причина проста: из-за say
, ,2,3
небольше в контексте стока, так как они используются say
.