Internals - 為內部相關函數保留的特殊命名空間
$is_ro= Internals::SvREADONLY($x)
$refcnt= Internals::SvREFCNT($x)
hv_clear_placeholders(%hash);
Internals 命名空間由 Perl 核心開發團隊使用,用於公開某些低階內部常式以進行測試和其他目的。
理論上,這些常式並非且不打算在 perl 核心之外使用,並且隨時可能變更和移除。
實際上,儘管過去未有文件記載,但多年來人們已經依賴這些常式,因此我們將在一段時間內提供一定程度的前向相容性。不過,您可以假設這裡記載的任何常式都是實驗性質或已棄用,您應該找到其他替代方案。
過去,Perl 一直是一種參考計數語言。這表示每個變數都會追蹤有多少項目參照它,並且當不再參照變數時,它將自動釋放自己。理論上,Perl 程式碼不應該在意這一點,並且在未來的版本中,Perl 可能會變更為其他策略,儘管實際上不太可能發生這種情況。
這個函數允許人們違反變數的抽象,並取得或設定變數的參考計數,而且通常只有在測試參考計數行為的程式碼中才真正有用。
*注意* 強烈建議您不要在非測試程式碼中使用這個函數,尤其不建議使用這個函數的設定形式。這樣做的結果可能會導致區段錯誤或其他未定義的行為。
設定或取得變數是否為唯讀。唯讀標記的實際意義取決於受影響變數的類型和使用的 perl 版本。
強烈建議不要直接使用此函式。此函式由各種核心模組使用,例如 Hash::Util
和 constant
pragma,用於實作較高層級的行為,應改用這些行為。
請參閱核心實作,了解每種內部變數類型的唯讀標記的精確意義。
清除鎖定雜湊中的所有佔位符。不應直接使用。您應該改用 Hash::Util 提供的包裝函式。從 5.25 版開始,也可以用作 Hash::Util::_clear_placeholders(%hash)
Perl 核心開發團隊。
perlguts Hash::Util constant universal.c