要从一个子类返回的列表中保存2个值并丢弃第三个值,可以;为什么分配给变量列表不一致?
(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;
...你得到整个列表。这似乎违反直觉 - 为什么不一致?
我不明白为什么'我的($第一)= 1,2,3'; *确实*按预期工作。这个单一的论据不应该在那里适用吗?换句话说,这与'(我的第一个)= 1,2,3;'或'我的$第一; ($ first)= 1,2,3;'? – mscha
@mscha:parens在语法上被重载:它们被用作声明语法的一部分以及为普通列表分隔(可能碰巧包含可分配的东西);从语法上看,它可能看起来很相似,但语义上,苹果和桔子 – Christoph
@mscha:为了一致性,使规则相同可能是一个好主意,但是请注意,列表语法是在Perl6的相当漫长的开发过程中演变而来的 – Christoph