head2-ify many of the head1s, will probably make this look
[p5sagit/p5-mst-13.2.git] / pod / perlrun.pod
index c33c478..d8ed107 100644 (file)
@@ -127,7 +127,7 @@ as the first line in C<*.cmd> file (B<-S> due to a bug in cmd.exe's
 =item MS-DOS
 
 Create a batch file to run your program, and codify it in
-C<ALTERNATIVE_SHEBANG> (see the F<dosish.h> file in the source
+C<ALTERNATE_SHEBANG> (see the F<dosish.h> file in the source
 distribution for more information).
 
 =item Win95/NT
@@ -894,11 +894,13 @@ used.
 
 =item PERL5LIB
 
-A colon-separated list of directories in which to look for Perl library
+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.
+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.
@@ -1062,7 +1064,7 @@ and Win32 approximate equivalent:
 
 =item PERLLIB
 
-A colon-separated list of directories in which to look for Perl library
+A list of directories in which to look for Perl library
 files before looking in the standard library and the current directory.
 If PERL5LIB is defined, PERLLIB is not used.
 
@@ -1106,6 +1108,30 @@ references.  See L<perlhack/PERL_DESTRUCT_LEVEL> for more information.
 If using the C<encoding> pragma without an explicit encoding name, the
 PERL_ENCODING environment variable is consulted for an encoding name.
 
+=item PERL_HASH_SEED
+
+(Since Perl 5.8.1.)  Used to randomise Perl's internal hash function.
+To emulate the pre-5.8.1 behaviour, set to an integer (zero means
+exactly the same order as 5.8.0).  "Pre-5.8.1" means, among other
+things, that hash keys will be ordered the same between different runs
+of Perl.
+
+The default behaviour is to randomise unless the PERL_HASH_SEED is set.
+If Perl has been compiled with C<-DUSE_HASH_SEED_EXPLICIT>, the default
+behaviour is B<not> to randomise unless the PERL_HASH_SEED is set.
+
+If PERL_HASH_SEED is unset or set to a non-numeric string, Perl uses
+the pseudorandom seed supplied by the operating system and libraries.
+This means that each different run of Perl will have a different
+ordering of the results of keys(), values(), and each().
+
+See L<perlsec/"Algorithmic Complexity Attacks"> for more information.
+
+=item PERL_HASH_SEED_DEBUG
+
+(Since Perl 5.8.1.)  Set to "1" to display (to STDERR) the value of
+the hash seed at the beginning of execution.
+
 =item PERL_ROOT (specific to the VMS port)
 
 A translation concealed rooted logical name that contains perl and the
@@ -1118,7 +1144,8 @@ L<perlvms> and in F<README.vms> in the Perl source distribution.
 
 In Perls 5.8.1 and later.  If set to C<unsafe> the pre-Perl-5.8.0
 signals behaviour (immediate but unsafe) is restored.  If set to
-C<safe> the safe (or deferred) signals are used.  See L<perlipc>.
+C<safe> the safe (or deferred) signals are used.
+See L<perlipc/"Deferred Signals (Safe signals)">.
 
 =item PERL_UNICODE