首先,我是Perl的初学者。我想知道这段代码是什么意思。
sub function
{
my $var1 = shift;
my $var2 = shift;
if ($$var1)
{
#code
}
else
{
#code
}
}
我知道它是一个函数,var1是函数的第一个参数,var2是第二个参数。但是if语句中的$$是什么意思?
所以这意味着$ var1是哈希?
答案 0 :(得分:2)
$$var1
是${ $var1 }
的缩写。
$NAME
和$BLOCK
是获取标量的语法,而不是哈希。
$NAME
直接访问变量。
$BLOCK
通过引用间接访问变量。
因此,
$var1
是一个标量。$var1
应包含对标量的引用(例如$var1 = \$var2;
)请注意,使用对标量的引用非常奇怪(就像这个子标题一样)。