<P>The open pragma is used to declare one or more default disciplines for
I/O operations. Any <A HREF="../lib/Pod/perlfunc.html#item_open"><CODE>open()</CODE></A> and <A HREF="../lib/Pod/perlfunc.html#item_readpipe"><CODE>readpipe()</CODE></A> (aka qx//) operators found
within the lexical scope of this pragma will use the declared defaults.
Neither <A HREF="../lib/Pod/perlfunc.html#item_open"><CODE>open()</CODE></A> with an explicit set of disciplines, nor <A HREF="../lib/Pod/perlfunc.html#item_sysopen"><CODE>sysopen()</CODE></A> are
influenced by this pragma.</P>
<P>Only the two pseudo-disciplines ``:raw'' and ``:crlf'' are currently
available.</P>
<P>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 <A HREF="../lib/Pod/perlfunc.html#item_binmode"><CODE>binmode()</CODE></A> is a no-op, but will be
<P>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.</P>
<P>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.</P>
<PRE>
open FH, "<:para :DEFAULT", $file or die "can't open $file: $!";</PRE>
<P>Socket and directory handles will also support disciplines in
future.</P>
<P>Full support for I/O disciplines will enable all of the supported
disciplines to work on all platforms.</P>
<P>
<HR>
<H1><A NAME="see also">SEE ALSO</A></H1>
<P><A HREF="../lib/Pod/perlfunc.html#binmode">binmode in the perlfunc manpage</A>, <A HREF="../lib/Pod/perlfunc.html#open">open in the perlfunc manpage</A>, <A HREF="../lib/Pod/perlunicode.html">the perlunicode manpage</A></P>