3 回答
TA贡献1809条经验 获得超8个赞
重要的影响是在声明变量的同时初始化变量:
my ($a) = @b; # assigns $a = $b[0]
my $a = @b; # assigns $a = scalar @b (length of @b)
另一个重要的时刻是声明多个变量。
my ($a,$b,$c); # correct, all variables are lexically scoped now
my $a,$b,$c; # $a is now lexically scoped, but $b and $c are not
如果您使用最后一条语句,则会给您一个错误use strict。
TA贡献1799条经验 获得超8个赞
简短的答案是,括号在列表的左侧使用时会强制列表上下文=。
其他每个答案都指出了在其中有所作为的特定情况。确实,您应该通读perlfunc,以更好地了解函数在列表上下文(而不是标量上下文)中被调用时的行为方式不同。
TA贡献1868条经验 获得超4个赞
请查看perdoc perlsub以获取有关该my运算符的更多信息。这是一个小摘录:
概要:
my $foo; # declare $foo lexically local
my (@wid, %get); # declare list of variables local
my $foo = "flurp"; # declare $foo lexical, and init it
my @oof = @bar; # declare @oof lexical, and init it
my $x : Foo = $y; # similar, with an attribute applied
添加回答
举报