This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add a perl592delta.pod man page.
[perl5.git] / pod / perlrun.pod
index f84143c..a6b90da 100644 (file)
@@ -367,7 +367,7 @@ the format of the output is explained in L<perldebguts>.
 As an alternative, specify a number instead of list of letters (e.g.,
 B<-D14> is equivalent to B<-Dtls>):
 
-        1  p  Tokenizing and parsing
+        1  p  Tokenizing and parsing (with v, displays parse stack)
         2  s  Stack snapshots
                 with v, displays all stacks
         4  l  Context (loop) stack processing
@@ -390,6 +390,8 @@ B<-D14> is equivalent to B<-Dtls>):
    524288  J  Do not s,t,P-debug (Jump over) opcodes within package DB
   1048576  v  Verbose: use in conjunction with other flags
   2097152  C  Copy On Write
+  4194304  A  Consistency checks on internal structures
+  8388608  q  quiet - currently only suppressed the "EXECUTING" message
 
 All these flags require B<-DDEBUGGING> when you compile the Perl
 executable (but see L<Devel::Peek>, L<re> which may change this).
@@ -603,7 +605,8 @@ Note that the lines are not printed by default.  See B<-p> to have
 lines printed.  If a file named by an argument cannot be opened for
 some reason, Perl warns you about it and moves on to the next file.
 
-Here is an efficient way to delete all files older than a week:
+Here is an efficient way to delete all files that haven't been modifed for
+at least a week:
 
     find . -mtime +7 -print | perl -nle unlink
 
@@ -936,7 +939,7 @@ IO in  order to load them!. See L<"open pragma"|open> for how to add external
 encodings as defaults.
 
 The layers that it makes sense to include in the PERLIO environment
-variable are summarised below. For more details see L<PerlIO>.
+variable are briefly summarised below. For more details see L<PerlIO>.
 
 =over 8
 
@@ -948,51 +951,27 @@ You perhaps were thinking of C<:crlf:bytes> or C<:perlio:bytes>.
 
 =item :crlf
 
-A layer that implements DOS/Windows like CRLF line endings.  On read
-converts pairs of CR,LF to a single "\n" newline character.  On write
-converts each "\n" to a CR,LF pair.  Note that this layer likes to be
-one of its kind: it silently ignores attempts to be pushed into the
-layer stack more than once.
-
-(Gory details follow) To be more exact what happens is this: after
-pushing itself to the stack, the C<:crlf> layer checks all the layers
-below itself to find the first layer that is capable of being a CRLF
-layer but is not yet enabled to be a CRLF layer.  If it finds such a
-layer, it enables the CRLFness of that other deeper layer, and then
-pops itself off the stack.  If not, fine, use the one we just pushed.
-
-The end result is that a C<:crlf> means "please enable the first CRLF
-layer you can find, and if you can't find one, here would be a good
-spot to place a new one."
-
-Based on the C<:perlio> layer.
+A layer which does CRLF to "\n" translation distinguishing "text" and
+"binary" files in the manner of MS-DOS and similar operating systems.
+(It currently does I<not> mimic MS-DOS as far as treating of Control-Z
+as being an end-of-file marker.)
 
 =item :mmap
 
 A layer which implements "reading" of files by using C<mmap()> to
 make (whole) file appear in the process's address space, and then
-using that as PerlIO's "buffer". This I<may> be faster in certain
-circumstances for large files, and may result in less physical memory
-use when multiple processes are reading the same file.
-
-Files which are not C<mmap()>-able revert to behaving like the C<:perlio>
-layer. Writes also behave like C<:perlio> layer as C<mmap()> for write
-needs extra house-keeping (to extend the file) which negates any advantage.
-
-The C<:mmap> layer will not exist if platform does not support C<mmap()>.
+using that as PerlIO's "buffer".
 
 =item :perlio
 
-A from scratch implementation of buffering for PerlIO. Provides fast
-access to the buffer for C<sv_gets> which implements perl's readline/E<lt>E<gt>
-and in general attempts to minimize data copying.
-
-C<:perlio> will insert a C<:unix> layer below itself to do low level IO.
+This is a re-implementation of "stdio-like" buffering written as a
+PerlIO "layer".  As such it will call whatever layer is below it for
+its operations (typically C<:unix>).
 
 =item :pop
 
 An experimental pseudolayer that removes the topmost layer.
-Use with the same care as is reserved for nitroglyserin.
+Use with the same care as is reserved for nitroglycerin.
 
 =item :raw
 
@@ -1001,16 +980,9 @@ layer is equivalent to calling C<binmode($fh)>.  It makes the stream
 pass each byte as-is without any translation.  In particular CRLF
 translation, and/or :utf8 intuited from locale are disabled.
 
-Arranges for all accesses go straight to the lowest buffered layer provided
-by the configration. That is it strips off any layers above that layer.
-
-In Perl 5.6 and some books the C<:raw> layer (previously sometimes also
-referred to as a "discipline") is documented as the inverse of the
-C<:crlf> layer. That is no longer the case - other layers which would
-alter binary nature of the stream are also disabled.  If you want UNIX
-line endings on a platform that normally does CRLF translation, but still
-want UTF-8 or encoding defaults the appropriate thing to do is to add
-C<:perlio> to PERLIO environment variable.
+Unlike in the earlier versions of Perl C<:raw> is I<not>
+just the inverse of C<:crlf> - other layers which would affect the
+binary nature of the stream are also removed or disabled.
 
 =item :stdio
 
@@ -1022,19 +994,15 @@ to do that.
 
 =item :unix
 
-Lowest level layer which provides basic PerlIO operations in terms of
-UNIX/POSIX numeric file descriptor calls
-C<open(), read(), write(), lseek(), close()>
+Low level layer which calls C<read>, C<write> and C<lseek> etc.
 
 =item :utf8
 
 A pseudolayer that turns on a flag on the layer below to tell perl
-that data sent to the stream should be converted to perl internal
-"utf8" form and that data from the stream should be considered as so
-encoded. On ASCII based platforms the encoding is UTF-8 and on EBCDIC
-platforms UTF-EBCDIC.  May be useful in PERLIO environment variable to
-make UTF-8 the default. (To turn off that behaviour use C<:bytes>
-layer.)
+that output should be in utf8 and that input should be regarded as
+already in utf8 form.  May be useful in PERLIO environment
+variable to make UTF-8 the default. (To turn off that behaviour
+use C<:bytes> layer.)
 
 =item :win32
 
@@ -1060,8 +1028,8 @@ buffering.
 
 This release uses C<unix> as the bottom layer on Win32 and so still uses C
 compiler's numeric file descriptor routines. There is an experimental native
-C<win32> layer which is expected to be enhanced and should eventually replace
-the C<unix> layer.
+C<win32> layer which is expected to be enhanced and should eventually be
+the default under Win32.
 
 =item PERLIO_DEBUG
 
@@ -1118,6 +1086,14 @@ Relevant only if your perl executable was built with B<-DDEBUGGING>,
 this controls the behavior of global destruction of objects and other
 references.  See L<perlhack/PERL_DESTRUCT_LEVEL> for more information.
 
+=item PERL_DL_NONLAZY
+
+Set to one to have perl resolve B<all> undefined symbols when it loads
+a dynamic library.  The default behaviour is to resolve symbols when
+they are used.  Setting this variable is useful during testing of
+extensions as it ensures that you get an error on misspelled function
+names even if the test suite doesn't call it.
+
 =item PERL_ENCODING
 
 If using the C<encoding> pragma without an explicit encoding name, the