X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlrun.pod;h=c82e2804b15a9fbc98e0ea220876bf11b712c6ad;hb=03f3e794d79fbb3655a305de34b922dd4020d2ec;hp=246d5b3f43a9458ca9f9716b66a4d744ffc26250;hpb=7949c6f5835be2397160861a571a7477a640bf42;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlrun.pod b/pod/perlrun.pod index 246d5b3..c82e280 100644 --- a/pod/perlrun.pod +++ b/pod/perlrun.pod @@ -10,7 +10,6 @@ B S<[ B<-sTtuUWX> ]> S<[ B<-pna> ] [ B<-F>I ] [ B<-l>[I] ] [ B<-0>[I] ]> S<[ B<-I>I ] [ B<-m>[B<->]I ] [ B<-M>[B<->]I<'module...'> ] [ B<-f> ]> S<[ B<-C [I] >]> - S<[ B<-P> ]> S<[ B<-S> ]> S<[ B<-x>[I] ]> S<[ B<-i>[I] ]> @@ -280,7 +279,7 @@ An alternate delimiter may be specified using B<-F>. =item B<-C [I]> X<-C> -The C<-C> flag controls some Unicode of the Perl Unicode features. +The C<-C> flag controls some of the Perl Unicode features. As of 5.8.1, the C<-C> can be followed either by a number or a list of option letters. The letters, their numeric values, and effects @@ -395,7 +394,7 @@ B<-D14> is equivalent to B<-Dtls>): 8 t Trace execution 16 o Method and overloading resolution 32 c String/numeric conversions - 64 P Print profiling info, preprocessor command for -P, source file input state + 64 P Print profiling info, source file input state 128 m Memory allocation 256 f Format processing 512 r Regular expression parsing and execution @@ -455,10 +454,10 @@ X<-f> Disable executing F<$Config{sitelib}/sitecustomize.pl> at startup. Perl can be built so that it by default will try to execute -F<$Config{sitelib}/sitecustomize.pl> at startup. This is a hook that -allows the sysadmin to customize how perl behaves. It can for -instance be used to add entries to the @INC array to make perl find -modules in non-standard locations. +F<$Config{sitelib}/sitecustomize.pl> at startup (in a BEGIN block). +This is a hook that allows the sysadmin to customize how perl behaves. +It can for instance be used to add entries to the @INC array to make perl +find modules in non-standard locations. =item B<-F>I X<-F> @@ -588,9 +587,7 @@ proceeds from STDIN to STDOUT as might be expected. X<-I> X<@INC> Directories specified by B<-I> are prepended to the search path for -modules (C<@INC>), and also tells the C preprocessor where to search for -include files. The C preprocessor is invoked with B<-P>; by default it -searches /usr/include and /usr/lib/perl. +modules (C<@INC>). =item B<-l>[I] X<-l> X<$/> X<$\> @@ -695,72 +692,6 @@ overrides a B<-n> switch. C and C blocks may be used to capture control before or after the implicit loop, just as in B. -=item B<-P> -X<-P> - -B - -This option causes your program to be run through the C preprocessor before -compilation by Perl. Because both comments and B directives begin -with the # character, you should avoid starting comments with any words -recognized by the C preprocessor such as C<"if">, C<"else">, or C<"define">. - -If you're considering using C<-P>, you might also want to look at the -Filter::cpp module from CPAN. - -The problems of -P include, but are not limited to: - -=over 10 - -=item * - -The C<#!> line is stripped, so any switches there don't apply. - -=item * - -A C<-P> on a C<#!> line doesn't work. - -=item * - -B lines that begin with (whitespace and) a C<#> but -do not look like cpp commands, are stripped, including anything -inside Perl strings, regular expressions, and here-docs . - -=item * - -In some platforms the C preprocessor knows too much: it knows about -the C++ -style until-end-of-line comments starting with C<"//">. -This will cause problems with common Perl constructs like - - s/foo//; - -because after -P this will became illegal code - - s/foo - -The workaround is to use some other quoting separator than C<"/">, -like for example C<"!">: - - s!foo!!; - - - -=item * - -It requires not only a working C preprocessor but also a working -F. If not on UNIX, you are probably out of luck on this. - -=item * - -Script line numbers are not preserved. - -=item * - -The C<-x> does not work with C<-P>. - -=back - =item B<-s> X<-s> @@ -869,10 +800,6 @@ execute a portion of your program before dumping, use the dump() operator instead. Note: availability of B is platform specific and may not be available for a specific port of Perl. -This switch has been superseded in favor of the new Perl code -generator backends to the compiler. See L and L -for details. - =item B<-U> X<-U> @@ -967,7 +894,7 @@ See L. =item B<-x> X<-x> -=item B<-x> I +=item B<-x>I tells Perl that the program is embedded in a larger chunk of unrelated ASCII text, such as in a mail message. Leading garbage will be @@ -980,6 +907,9 @@ C<__END__> if there is trailing garbage to be ignored (the program can process any or all of the trailing garbage via the DATA filehandle if desired). +The directory, if specified, must appear immediately following the B<-x> +with no intervening whitespace. + =back =head1 ENVIRONMENT @@ -1027,7 +957,7 @@ is used. The program should instead say: X Command-line options (switches). Switches in this variable are taken -as if they were on every Perl command line. Only the B<-[CDIMUdmtwA]> +as if they were on every Perl command line. Only the B<-[CDIMUdmtw]> switches are allowed. When running taint checks (because the program was running setuid or setgid, or the B<-T> switch was used), this variable is ignored. If PERL5OPT begins with B<-T>, tainting will be @@ -1124,9 +1054,9 @@ X<:utf8> A pseudolayer that turns on a flag on the layer below to tell perl that output should be in utf8 and that input should be regarded as -already in utf8 form. May be useful in PERLIO environment -variable to make UTF-8 the default. (To turn off that behaviour -use C<:bytes> layer.) +already in valid utf8 form. It does not check for validity and as such +should be handled with caution for input. Generally C<:encoding(utf8)> is +the best option when reading UTF-8 encoded data. =item :win32 X<:win32> @@ -1258,20 +1188,23 @@ PERL_ENCODING environment variable is consulted for an encoding name. =item PERL_HASH_SEED X -(Since Perl 5.8.1.) Used to randomise Perl's internal hash function. +(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. +things, that hash keys will always have the same ordering between +different runs of perl. + +Most hashes return elements in the same order as Perl 5.8.0 by default. +On a hash by hash basis, if pathological data is detected during a hash +key insertion, then that hash will switch to an alternative random hash +seed. 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 +If perl has been compiled with C<-DUSE_HASH_SEED_EXPLICIT>, the default behaviour is B to randomise unless the PERL_HASH_SEED is set. -If PERL_HASH_SEED is unset or set to a non-numeric string, Perl uses +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(). B. Hashes are randomized to protect against local and remote attacks against Perl