=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
=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.
=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.
+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.
=item :mmap
=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.
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.
+B<Please note that the hash seed is sensitive information>. Hashes are
+randomized to protect against local and remote attacks against Perl
+code. By manually setting a seed this protection may be partially or
+completely lost.
+
+See L<perlsec/"Algorithmic Complexity Attacks"> and
+L</PERL_HASH_SEED_DEBUG> 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.
+(Since Perl 5.8.1.) Set to one to display (to STDERR) the value of
+the hash seed at the beginning of execution. This, combined with
+L</PERL_HASH_SEED> is intended to aid in debugging nondeterministic
+behavior caused by hash randomization.
+
+B<Note that the hash seed is sensitive information>: by knowing it one
+can craft a denial-of-service attack against Perl code, even remotely,
+see L<perlsec/"Algorithmic Complexity Attacks"> for more information.
+B<Do not disclose the hash seed> to people who don't need to know it.
+See also hash_seed() of L<Hash::Util>.
=item PERL_ROOT (specific to the VMS port)