Remove PERL_MAGIC_mutex
[p5sagit/p5-mst-13.2.git] / pod / perlrun.pod
index 6eb6bbf..a72c2c0 100644 (file)
@@ -9,7 +9,6 @@ B<perl> S<[ B<-sTtuUWX> ]>
        S<[ B<-cw> ] [ B<-d>[B<t>][:I<debugger>] ] [ B<-D>[I<number/list>] ]>
        S<[ B<-pna> ] [ B<-F>I<pattern> ] [ B<-l>[I<octal>] ] [ B<-0>[I<octal/hexadecimal>] ]>
        S<[ B<-I>I<dir> ] [ B<-m>[B<->]I<module> ] [ B<-M>[B<->]I<'module...'> ] [ B<-f> ]>
-       S<[ B<-A>[I<module>][=I<assertions>] ]>
        S<[ B<-C [I<number/list>] >]>
        S<[ B<-P> ]>
        S<[ B<-S> ]>
@@ -260,19 +259,6 @@ format: C<-0xHHH...>, where the C<H> are valid hexadecimal digits.
 (This means that you cannot use the C<-x> with a directory name that
 consists of hexadecimal digits.)
 
-=item B<-A[I<module>][=I<assertions>]>
-X<-A>
-
-Activates the assertions given after the equal sign as a comma-separated
-list of assertion names or regular expressions. If no assertion name
-is given, activates all assertions.
-
-The module L<assertions::activate> is used by default to activate the
-selected assertions. An alternate module may be specified including
-its name between the switch and the equal sign.
-
-See L<assertions> and L<assertions::activate>.
-
 =item B<-a>
 X<-a> X<autosplit>
 
@@ -314,6 +300,15 @@ are as follows; listing the letters is equal to summing the numbers.
               variables (the LC_ALL, LC_TYPE, and LANG, in the order
               of decreasing precedence) -- if the variables indicate
               UTF-8, then the selected "IOEioA" are in effect
+    a   256   Set ${^UTF8CACHE} to -1, to run the UTF-8 caching code in
+              debugging mode.
+
+=for documenting_the_underdocumented
+perl.h gives W/128 as PERL_UNICODE_WIDESYSCALLS "/* for Sarathy */"
+
+=for todo
+perltodo mentions Unicode in %ENV and filenames. I guess that these will be
+options e and f (or F).
 
 For example, C<-COE> and C<-C6> will both turn on UTF-8-ness on both
 STDOUT and STDERR.  Repeating letters is just redundant, not cumulative
@@ -351,10 +346,10 @@ switch was therefore "recycled".)
 X<-c>
 
 causes Perl to check the syntax of the program and then exit without
-executing it.  Actually, it I<will> execute C<BEGIN>, C<CHECK>, and
-C<use> blocks, because these are considered as occurring outside the
-execution of your program.  C<INIT> and C<END> blocks, however, will
-be skipped.
+executing it.  Actually, it I<will> execute C<BEGIN>, C<UNITCHECK>,
+C<CHECK>, and C<use> blocks, because these are considered as occurring
+outside the execution of your program.  C<INIT> and C<END> blocks,
+however, will be skipped.
 
 =item B<-d>
 X<-d> X<-dt>
@@ -771,8 +766,7 @@ X<-s>
 
 enables rudimentary switch parsing for switches on the command
 line after the program name but before any filename arguments (or before
-an argument of B<-->).  This means you can have switches with two leading
-dashes (B<--help>).  Any switch found there is removed from @ARGV and sets the
+an argument of B<-->).  Any switch found there is removed from @ARGV and sets the
 corresponding variable in the Perl program.  The following program
 prints "1" if the program is invoked with a B<-xyz> switch, and "abc"
 if it is invoked with B<-xyz=abc>.
@@ -780,7 +774,7 @@ if it is invoked with B<-xyz=abc>.
     #!/usr/bin/perl -s
     if ($xyz) { print "$xyz\n" }
 
-Do note that B<--help> creates the variable ${-help}, which is not compliant
+Do note that a switch like B<--help> creates the variable ${-help}, which is not compliant
 with C<strict refs>.  Also, when using this option on a script with
 warnings enabled you may get a lot of spurious "used only once" warnings.
 
@@ -1015,14 +1009,17 @@ X<PERL5LIB>
 A list of directories in which to look for Perl library
 files before looking in the standard library and the current
 directory.  Any architecture-specific directories under the specified
-locations are automatically included if they exist.  If PERL5LIB is not
-defined, PERLLIB is used.  Directories are separated (like in PATH) by
-a colon on unixish platforms and by a semicolon on Windows (the proper
-path separator being given by the command C<perl -V:path_sep>).
+locations are automatically included if they exist (this lookup
+being done at interpreter startup time.)
+
+If PERL5LIB is not defined, PERLLIB is used.  Directories are separated
+(like in PATH) by a colon on unixish platforms and by a semicolon on
+Windows (the proper path separator being given by the command C<perl
+-V:path_sep>).
 
 When running taint checks (either because the program was running setuid
-or setgid, or the B<-T> switch was used), neither variable is used.
-The program should instead say:
+or setgid, or the B<-T> or B<-t> switch was specified), neither variable
+is used. The program should instead say:
 
     use lib "/my/directory";
 
@@ -1047,7 +1044,9 @@ emphasise their similarity to variable "attributes". But the code that parses
 layer specification strings (which is also used to decode the PERLIO
 environment variable) treats the colon as a separator.
 
-An unset or empty PERLIO is equivalent to C<:stdio>.
+An unset or empty PERLIO is equivalent to the default set of layers for
+your platform, for example C<:unix:perlio> on UNIX-like systems
+and C<:unix:crlf> on Windows and other DOS-like systems.
 
 The list becomes the default for I<all> perl's IO. Consequently only built-in
 layers can appear in this list, as external layers (such as :encoding()) need