当我们在Perl中的括号中声明一个标量实际上是什么意思?
示例:
#!/usr/bin/perl
my ($x)=10;
print "$x";
答案 0 :(得分:4)
它强制在列表上下文中计算赋值的右操作数。它在你的例子中没用(因为10
并不关心上下文),但在其他情况下这很重要。
my @a = qw( a b c );
my $count = @a; # 3
my ($first_val) = @a; # a
有关详细信息,请参阅Mini-Tutorial: Scalar vs List Assignment Operator。
答案 1 :(得分:2)
这有几个不同的用途。一个非常常见的是在一行中声明多个变量。
my ($a, $b, $c);
您还可以使用它将变量分配给数组索引值
my ($a, $b, $c) = @letters
答案 2 :(得分:2)
除了现有的两个答案之外,还值得注意的是my
只是极少数Perl关键字的情况,在某些情况下需要括号,就像if
和{ {1}}做。
如果你想同时声明多个变量,你需要parens。
for
如果要将函数的返回值分配给新变量,但将它与其中的某些变量关联,则将它与括号一起使用也很有用。
my $foo, $bar; # only declares $foo, will fail under strict if $bar is not there
my ( $foo, $bar); # works
在此示例中使用localtime
,将忽略第一个返回值 seconds 。所有其他值(my ( undef, $min, $hour) = localtime;
)也会被忽略,因为我们从不分配它们。