${^OPEN}

PerlIO 使用的內部變數。一個由 \0 位元組分隔的兩部分字串,第一部分描述輸入層,第二部分描述輸出層。

這是套用 open 實用指令的詞彙效果,以及 -C 命令列開關和 PERL_UNICODE 環境變數的程式主體範圍效果的機制。

accept()open()pipe()readpipe()(以及相關的 qx`STRING` 運算子)、socket()socketpair()sysopen() 函式會受到此變數的詞彙值影響。由 readline()(或相關的 <><<>> 運算子)在傳遞檔案名稱時開啟的隱含 "ARGV" 句柄也會受到影響(但如果開啟 STDIN 則不會)。如果未設定此變數,這些函式會設定 PerlIO 中的「預設值和如何覆寫」中所述的預設層。

當以 3 個引數呼叫 open() 並指定明確的層時,此變數(以及預設層)會被忽略。透過模組(例如 IO::Handle)對這些函式的間接呼叫不受影響,因為它們發生在不同的詞法範圍內。目前不受影響的目錄處理程式包括由 opendir() 開啟的目錄處理程式。

此變數新增於 Perl v5.8.0。