Perl 5.8 does I/O via PerlIO instead of through your system’s I/O
(STDIO). By implementing open( )
with PerlIO, the default behavior of open
is changed to support a
three-argument format. For example:
open($fh, '>:utf-8', $filename) or die("..."); # Open $filename and support utf-8
In this example, the filehandle is marked with utf-8
(or utf8
for EBCDIC users) to accept Perl’s
internal Unicode encoding.
The PerlIO layers are:
Low-level read/write
Standard I/O
Portable implementation of buffering
Win32
Also in Perl 5.8, you are no longer required to name a
filehandle in open( )
because
Perl will handle the filehandles internally:
open($fh, ...) or ...
You can also use anonymous temporary files with the new form
of open( )
:
open($fh, ">", undef) or ...
Pipes can also be used with a multiple-argument form of
open
. The following code is
roughly equivalent to the Unix command 'ls
-al'
:
open($fh, "-|", 'ls -al', '/users') or ...
18.226.98.208