2017-08-10 420 views
-3

首先,我是Perl的初學者。我想知道這個代碼是什麼意思。

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

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

我知道它是一個函數,var1是函數的第一個參數,var2是第二個參數。但是,在if語句中是什麼意思?

那麼這意味着$ var1是哈希?

+0

不,這並不意味着'$ var1'是一個散列。沒有哈希查找括號。這意味着'$ var1'是對標量的引用。 –

+1

@DaveCross做出答案? – ysth

回答

2

$$var1${ $var1 }的簡稱。

$NAME$BLOCK是加密標量而不是散列的語法。

$NAME直接訪問變量。

$BLOCK通過引用間接訪問變量。

因此,

  • $var1是一個標量。
  • $var1預計將包含一個標(例如$var1 = \$var2;

注意的參考,這是很奇怪用來標量引用(如本次那樣)。