2011-07-20 13 views

回答

4
print $bar 1; 

發出錯誤。你可以看到的是什麼意思on this perlmonks thread

一個很好的解釋,由splain解釋:(含''

Can't use an undefined value as a symbol reference (#1) 
(F) A value used as either a hard reference or a symbolic reference must 
be a defined value. This helps to delurk some insidious errors. 
+0

有什麼不同的B/W硬和象徵性的參考? –

+3

@R__ - 一個硬引用是這樣構建的:'$ ref = \ $ scalar'。符號ref是一個包含另一個變量名稱的字符串,例如'$ ref =「scalar」'。在這兩種情況下,您都可以使用'$$ ref'獲取引用的變量。禁止使用符號引用(有充分理由)在'use strict'refs''下。 – frezik

+1

@frezik =〜s /(?=禁止)/大部分/; '$ method'可以是'$ o - > $ method()'中的一個符號。 – ikegami

1
perl -we '$x = shift; *$x = sub {42}; print $x->()' 

此代碼打印42如果調用使用任何參數,但給人的需要警告沒有參數。

+0

P.S.這是一個活生生的例子,現在不用perl編程。 – Dallaylaen

3

這裏是最簡單的形式:

say *{my $a}{SCALAR}; # OR say ${ *{my $a} }; 
+0

第二個錯誤。給出「在*標量*解引用中使用未初始化的值」 – ikegami

相關問題