summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/pods/perlrun.pod
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/pods/perlrun.pod')
-rw-r--r--Master/tlpkg/tlperl/lib/pods/perlrun.pod61
1 files changed, 35 insertions, 26 deletions
diff --git a/Master/tlpkg/tlperl/lib/pods/perlrun.pod b/Master/tlpkg/tlperl/lib/pods/perlrun.pod
index d51342f8f80..6ddc608d4f4 100644
--- a/Master/tlpkg/tlperl/lib/pods/perlrun.pod
+++ b/Master/tlpkg/tlperl/lib/pods/perlrun.pod
@@ -93,11 +93,12 @@ 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
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
@@ -143,8 +144,8 @@ Perl program and a Perl library file.
Put
- $ perl -mysw 'f$env("procedure")' 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' !
- $ exit++ + ++$status != 0 and $exit = $status = undef;
+ $ perl -mysw 'f$env("procedure")' 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' !
+ $ exit++ + ++$status != 0 and $exit = $status = undef;
at the top of your program, where B<-mysw> are any command line switches you
want to pass to Perl. You can now invoke the program directly, by saying
@@ -160,7 +161,7 @@ Command-interpreters on non-Unix systems have rather different ideas
on quoting than Unix shells. You'll need to learn the special
characters in your command-interpreter (C<*>, C<\> and C<"> are
common) and how to protect whitespace and these characters to run
-one-liners (see B<-e> below).
+one-liners (see L<-e|/-e commandline> below).
On some systems, you may have to change single-quotes to double ones,
which you must I<not> do on Unix or Plan 9 systems. You might also
@@ -282,13 +283,13 @@ are as follows; listing the letters is equal to summing the numbers.
D 24 i + o
A 32 the @ARGV elements are expected to be strings encoded
in UTF-8
- L 64 normally the "IOEioA" are unconditional,
- the L makes them conditional on the locale environment
- variables (the LC_ALL, LC_TYPE, and LANG, in the order
- of decreasing precedence) -- if the variables indicate
+ L 64 normally the "IOEioA" are unconditional, the L makes
+ them conditional on the locale environment 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.
+ 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 */"
@@ -314,6 +315,7 @@ same effect as B<-CSDL>. In other words, the standard I/O handles and
the default C<open()> layer are UTF-8-fied I<but> only if the locale
environment variables indicate a UTF-8 locale. This behaviour follows
the I<implicit> (and problematic) UTF-8 behaviour of Perl 5.8.0.
+(See L<perl581delta/UTF-8 no longer default under UTF-8 locales>.)
You can use B<-C0> (or C<"0"> for C<PERL_UNICODE>) to explicitly
disable all the above Unicode features.
@@ -393,19 +395,24 @@ B<-D14> is equivalent to B<-Dtls>):
512 r Regular expression parsing and execution
1024 x Syntax tree dump
2048 u Tainting checks
- 4096 U Unofficial, User hacking (reserved for private, unreleased use)
+ 4096 U Unofficial, User hacking (reserved for private,
+ unreleased use)
8192 H Hash dump -- usurps values()
16384 X Scratchpad allocation
32768 D Cleaning up
131072 T Tokenizing
- 262144 R Include reference counts of dumped variables (eg when using -Ds)
- 524288 J show s,t,P-debug (don't Jump over) on opcodes within package DB
+ 262144 R Include reference counts of dumped variables (eg when
+ using -Ds)
+ 524288 J show s,t,P-debug (don't Jump over) on 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 suppresses the "EXECUTING" message
+ 8388608 q quiet - currently only suppresses the "EXECUTING"
+ message
16777216 M trace smart match resolution
- 33554432 B dump suBroutine definitions, including special Blocks like BEGIN
+ 33554432 B dump suBroutine definitions, including special Blocks
+ like BEGIN
All these flags require B<-DDEBUGGING> when you compile the Perl
executable (but see C<:opd> in L<Devel::Peek> or L<re/'debug' mode>
@@ -512,20 +519,22 @@ as:
This allows you to add a prefix to the backup file, instead of (or in
addition to) a suffix:
- $ perl -pi'orig_*' -e 's/bar/baz/' fileA # backup to 'orig_fileA'
+ $ perl -pi'orig_*' -e 's/bar/baz/' fileA # backup to
+ # 'orig_fileA'
Or even to place backup copies of the original files into another
directory (provided the directory already exists):
- $ perl -pi'old/*.orig' -e 's/bar/baz/' fileA # backup to 'old/fileA.orig'
+ $ perl -pi'old/*.orig' -e 's/bar/baz/' fileA # backup to
+ # 'old/fileA.orig'
These sets of one-liners are equivalent:
- $ perl -pi -e 's/bar/baz/' fileA # overwrite current file
- $ perl -pi'*' -e 's/bar/baz/' fileA # overwrite current file
+ $ perl -pi -e 's/bar/baz/' fileA # overwrite current file
+ $ perl -pi'*' -e 's/bar/baz/' fileA # overwrite current file
- $ perl -pi'.orig' -e 's/bar/baz/' fileA # backup to 'fileA.orig'
- $ perl -pi'*.orig' -e 's/bar/baz/' fileA # backup to 'fileA.orig'
+ $ perl -pi'.orig' -e 's/bar/baz/' fileA # backup to 'fileA.orig'
+ $ perl -pi'*.orig' -e 's/bar/baz/' fileA # backup to 'fileA.orig'
From the shell, saying
@@ -669,7 +678,7 @@ I<awk>:
... # your program goes here
}
-Note that the lines are not printed by default. See B<-p> to have
+Note that the lines are not printed by default. See L</-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.