サブから返されたリストから2つの値を保存し、3番目の値をスローするには、次のようにします。変数リストへの代入が一貫しないのはなぜですか?
(my $first, my $second) = (1, 2, 3);
print $first, "\n";
print $second, "\n";
exit 0;
(期待通りに動作します(perl5とperl6の両方)。あなたが最初のものだけを望むならば。
(my $first) = (1, 2, 3);
print $first, "\n";
exit 0;
...リスト全体が表示されます。これは直感的ではないようです - なぜ不一致ですか?
「my($ first)= 1,2,3'; *は意図したとおりに動作します。一つの議論はそこにも適用されるべきではありませんか?言い換えれば、これは '(my $ first)= 1,2,3;または' my $ first;とはどう違うのですか? ($ first)= 1,2,3; '? – mscha
@mscha:括弧は構文上オーバーロードされています:宣言構文の一部として使用され、通常のリストを区切るために使用されます(割り当て可能なものが含まれることがあります)。構文的には類似しているかもしれませんが、意味的にはリンゴとオレンジのように見えます – Christoph
@mscha:一貫性のために、ルールを同じにすることは良い考えですが、Perl6のかなり長い開発プロセス – Christoph