The examples above use a relative path to the perl interpreter,
getting whatever version is first in the user's path. If you want
-a specific version of Perl, say, perl5.005_57, you should place
+a specific version of Perl, say, perl5.14.1, you should place
that directly in the C<#!> line's path.
-If the C<#!> line does not contain the word "perl", the program named after
-the C<#!> is executed instead of the Perl interpreter. This is slightly
-bizarre, but it helps people on machines that don't do C<#!>, because they
-can tell a program that their SHELL is F</usr/bin/perl>, and Perl will then
-dispatch the program to the correct interpreter for them.
+If the C<#!> line does not contain the word "perl" nor the word "indir"
+the program named after the C<#!> is executed instead of the Perl
+interpreter. This is slightly bizarre, but it helps people on machines
+that don't do C<#!>, because they can tell a program that their SHELL is
+F</usr/bin/perl>, and Perl will then dispatch the program to the correct
+interpreter for them.
After locating your program, Perl compiles the entire program to an
internal form. If there are any compilation errors, execution of the
will stand in for whatever method works on your system. You are
advised to use a specific path if you care about a specific version.
- #!/usr/local/bin/perl5.00554
+ #!/usr/local/bin/perl5.14
or if you just want to be running at least version, place a statement
like this at the top of your program:
- use 5.005_54;
+ use 5.014;
=head2 Command Switches
X<perl, command switches> X<command switches>
8192 H Hash dump -- usurps values()
16384 X Scratchpad allocation
32768 D Cleaning up
+ 65536 S Op slab allocation
131072 T Tokenizing
262144 R Include reference counts of dumped variables (eg when
using -Ds)
switches are allowed. When running taint checks (either because the
program was running setuid or setgid, or because the B<-T> or B<-t>
switch was used), this variable is ignored. If PERL5OPT begins with
-B<- T>, tainting will be enabled and subsequent options ignored. If
+B<-T>, tainting will be enabled and subsequent options ignored. If
PERL5OPT begins with B<-t>, tainting will be enabled, a writable dot
removed from @INC, and subsequent options honored.
It is conventional to start layer names with a colon (for example, C<:perlio>) to
emphasize their similarity to variable "attributes". But the code that parses
-layer specification strings, which is also used to decode the PERLIO
+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 the default set of layers for
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 C<:encoding()>) need
-IO in order to load them!. See L<"open pragma"|open> for how to add external
+IO in order to load them! See L<"open pragma"|open> for how to add external
encodings as defaults.
Layers it makes sense to include in the PERLIO environment
X<PERLIO_DEBUG>
If set to the name of a file or device, certain operations of PerlIO
-subsystem will be logged to that file, which is opened in append mode
+subsystem will be logged to that file, which is opened in append mode.
Typical uses are in Unix:
% env PERLIO_DEBUG=/dev/tty perl script ...