$$ var意味着什么?

时间:2017-08-10 15:02:18

标签: function perl variables

首先,我是Perl的初学者。我想知道这段代码是什么意思。

sub function
{
    my $var1 = shift;
    my $var2 = shift;

    if ($$var1)
    {
        #code
    }
    else
    {
        #code
    }
}

我知道它是一个函数,var1是函数的第一个参数,var2是第二个参数。但是if语句中的$$是什么意思?

所以这意味着$ var1是哈希?

1 个答案:

答案 0 :(得分:2)

$$var1${ $var1 }的缩写。

$NAME$BLOCK是获取标量的语法,而不是哈希。

$NAME直接访问变量。

$BLOCK通过引用间接访问变量。

因此,

  • $var1是一个标量。
  • $var1应包含对标量的引用(例如$var1 = \$var2;

请注意,使用对标量的引用非常奇怪(就像这个子标题一样)。