


open(3p)         Perl Programmers Reference Guide        open(3p)


NAME
       open - perl pragma to set default disciplines for input
       and output

SYNOPSIS
           use open IN => ":crlf", OUT => ":raw";


DESCRIPTION
       The open pragma is used to declare one or more default
       disciplines for I/O operations.  Any open() and readpipe()
       (aka qx//) operators found within the lexical scope of
       this pragma will use the declared defaults.  Neither
       open() with an explicit set of disciplines, nor sysopen()
       are influenced by this pragma.

       Only the two pseudo-disciplines ":raw" and ":crlf" are
       currently available.

       The ":raw" discipline corresponds to "binary mode" and the
       ":crlf" discipline corresponds to "text mode" on platforms
       that distinguish between the two modes when opening files
       (which is many DOS-like platforms, including Windows).
       These two disciplines are currently no-ops on platforms
       where binmode() is a no-op, but will be supported every-
       where in future.

UNIMPLEMENTED FUNCTIONALITY
       Full-fledged support for I/O disciplines is currently
       unimplemented.  When they are eventually supported, this
       pragma will serve as one of the interfaces to declare
       default disciplines for all I/O.

       In future, any default disciplines declared by this pragma
       will be available by the special discipline name
       ":DEFAULT", and could be used within handle constructors
       that allow disciplines to be specified.  This would make
       it possible to stack new disciplines over the default
       ones.

           open FH, "<:para :DEFAULT", $file or die "can't open $file: $!";

       Socket and directory handles will also support disciplines
       in future.

       Full support for I/O disciplines will enable all of the
       supported disciplines to work on all platforms.

SEE ALSO
       the binmode entry in the perlfunc manpage, the open entry
       in the perlfunc manpage, the perlunicode manpage






2000-04-06                 perl v5.6.1                          1


