An internal variable used byPerlIO. A string in two parts, separated by a\0
byte, the first part describes the input layers, the second part describes the output layers.
This is the mechanism that applies the lexical effects of theopen pragma, and the main program scope effects of theio
orD
options for the-C command-line switch andPERL_UNICODE environment variable.
The functionsaccept()
,open()
,pipe()
,readpipe()
(as well as the relatedqx
and`STRING`
operators),socket()
,socketpair()
, andsysopen()
are affected by the lexical value of this variable. The implicit"ARGV" handle opened byreadline()
(or the related<>
and<<>>
operators) on passed filenames is also affected (but not if it opensSTDIN
). If this variable is not set, these functions will set the default layers as described in"Defaults and how to override them" in PerlIO.
open()
ignores this variable (and the default layers) when called with 3 arguments and explicit layers are specified. Indirect calls to these functions via modules likeIO::Handle are not affected as they occur in a different lexical scope. Directory handles such as opened byopendir()
are not currently affected.
This variable was added in Perl v5.8.0.
Perldoc Browser is maintained by Dan Book (DBOOK). Please contact him via theGitHub issue tracker oremail regarding any issues with the site itself, search, or rendering of documentation.
The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via thePerl issue tracker, themailing list, orIRC to report any issues with the contents or format of the documentation.