($test) = (@test);
$test = @test;在变量周围有一个括号,它访问数组的第一个元素。我找不到数组周围的括号的任何信息。
发布于 2016-05-31 10:08:47
($test) = (@test);
这会将@test中的值分配给只包含$test的变量列表。因此,$test将包含@test的第一个元素。这叫做列表上下文。您还可以省略@test周围的括号。
my @test = ('a', 'b');
my ($test) = @test; # 'a'这也是非常常用的用于将函数的参数赋值给变量。下面将为函数分配前三个参数,并忽略后面的任何其他参数。
sub foo {
my ($self, $foo, $bar) = @_;
# ...
}您还可以跳过中间的元素。这也是有效的。bar值不会在这里分配。
my @foo = qw(foo bar baz);
(my $foo, undef, my $baz) = @foo;$test = @test;
这迫使@test进入标量上下文。标量上下文中的数组返回元素数,因此$test将成为一个整数。
my @test = ('a', 'b');
my $test = @test; # 2您可以在perldata中阅读更多关于上下文的内容。
https://stackoverflow.com/questions/37542674
复制相似问题