Perl 5.8 and PerlIO
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-8In 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:
- unix
Low-level read/write
- stdio
Standard I/O
- perlio
Portable implementation of buffering
- crlf
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 ...