state
宣告一個詞彙範圍變數,就像 my
。但是,這些變數永遠不會重新初始化,這與詞彙變數不同,詞彙變數會在每次進入其封閉區塊時重新初始化。詳情請參閱 "perlsub 中的「持續性私有變數」。
如果列出多個變數,則必須將清單置於括號中。使用括號清單時,undef
可用作虛擬佔位符。但是,由於目前無法初始化此類清單中的狀態變數,因此這沒有任何作用。
在同一個範圍或陳述式中重新宣告變數會「遮蔽」前一個宣告,建立一個新的執行個體,並阻止存取前一個執行個體。這通常是不需要的,如果啟用警告,則會在 shadow
類別中產生警告。
state
僅在啟用 "state"
功能 或以 CORE::
為前綴時可用。 "state"
功能 會在目前範圍中自動啟用 use v5.10
(或更高版本)宣告。