X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlfunc.pod;h=88cbb0a6e5fcd91ee83ac562bc89084254856163;hb=151210d1da6387892e1804f7c0c65f5a4da5f893;hp=905c444e5e027020781e4ce8514d5fdb77b8cb2f;hpb=7d30b5c4c60a798b772f5d7bd3b85d21016359c7;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod index 905c444..88cbb0a 100644 --- a/pod/perlfunc.pod +++ b/pod/perlfunc.pod @@ -523,8 +523,8 @@ C statement. In particular, for a C statement, $filename is C<(eval)>, but $evaltext is undefined. (Note also that each C statement creates a C frame inside an C) frame. C<$hints> contains pragmatic hints that the caller was -compiled with. It currently only reflects the hint corresponding to -C. +compiled with. The C<$hints> value is subject to change between versions +of Perl, and is not meant for external use. Furthermore, when called from within the DB package, caller returns more detailed information: it sets the list variable C<@DB::args> to be the @@ -539,8 +539,10 @@ previous time C was called. =item chdir EXPR Changes the working directory to EXPR, if possible. If EXPR is omitted, -changes to the user's home directory. Returns true upon success, -false otherwise. See the example under C. +changes to the directory specified by C<$ENV{HOME}>, if set; if not, +changes to the directory specified by C<$ENV{LOGDIR}>. If neither is +set, C does nothing. It returns true upon success, false +otherwise. See the example under C. =item chmod LIST @@ -1557,11 +1559,11 @@ in the way of your getting your job done.) OPERATION is one of LOCK_SH, LOCK_EX, or LOCK_UN, possibly combined with LOCK_NB. These constants are traditionally valued 1, 2, 8 and 4, but -you can use the symbolic names if import them from the Fcntl module, +you can use the symbolic names if you import them from the Fcntl module, either individually, or as a group using the ':flock' tag. LOCK_SH requests a shared lock, LOCK_EX requests an exclusive lock, and LOCK_UN -releases a previously requested lock. If LOCK_NB is added to LOCK_SH or -LOCK_EX then C will return immediately rather than blocking +releases a previously requested lock. If LOCK_NB is bitwise-or'ed with +LOCK_SH or LOCK_EX then C will return immediately rather than blocking waiting for the lock (check the return status to see if you got it). To avoid the possibility of miscoordination, Perl now flushes FILEHANDLE @@ -3524,13 +3526,16 @@ for this. Other restrictions include whether it works on directories, open files, or pre-existing files. Check L and either the rename(2) manpage or equivalent system documentation for details. +=item require VERSION + =item require EXPR =item require Demands some semantics specified by EXPR, or by C<$_> if EXPR is not -supplied. If EXPR is numeric, demands that the current version of Perl -(C<$]> or $PERL_VERSION) be equal or greater than EXPR. +supplied. If a version number or tuple is specified, or if EXPR is +numeric, demands that the current version of Perl +(C<$^V> or C<$]> or $PERL_VERSION) be equal or greater than EXPR. Otherwise, demands that a library file be included if it hasn't already been included. The file is included via the do-FILE mechanism, which is @@ -4305,6 +4310,10 @@ In addition, Perl permits the following widely-supported conversions: %n special: *stores* the number of characters output so far into the next variable in the parameter list +And the following Perl-specific conversion: + + %v a string, output as a tuple of integers ("Perl" is 80.101.114.108) + Finally, for backward (and we do mean "backward") compatibility, Perl permits these unnecessary but widely-supported conversions: @@ -5141,13 +5150,17 @@ package. It is exactly equivalent to except that Module I be a bareword. -If the first argument to C is a number, it is treated as a version -number instead of a module name. If the version of the Perl interpreter -is less than VERSION, then an error message is printed and Perl exits -immediately. This is often useful if you need to check the current -Perl version before Cing library modules that have changed in -incompatible ways from older versions of Perl. (We try not to do -this more than we have to.) +If the first argument to C is a number or a version tuple, it is +treated as a version instead of a module name. If the version +of the Perl interpreter is less than VERSION, then an error message +is printed and Perl exits immediately. + + use 5.005_03; # version number + use v5.6.0; # version tuple + +This is often useful if you need to check the current Perl version before +Cing library modules that have changed in incompatible ways from +older versions of Perl. (We try not to do this more than we have to.) The C forces the C and C to happen at compile time. The C makes sure the module is loaded into memory if it hasn't been @@ -5157,8 +5170,7 @@ features back into the current package. The module can implement its C method any way it likes, though most modules just choose to derive their C method via inheritance from the C class that is defined in the C module. See L. If no C -method can be found then the error is currently silently ignored. This -may change to a fatal error in a future version. +method can be found then the call is skipped. If you don't want your namespace altered, explicitly supply an empty list: @@ -5261,9 +5273,13 @@ to give the expression the correct precedence as in vec($image, $max_x * $x + $y, 8) = 3; -Vectors created with C can also be manipulated with the logical -operators C<|>, C<&>, and C<^>, which will assume a bit vector -operation is desired when both operands are strings. +If the selected element is off the end of the string, the value 0 is +returned. If an element off the end of the string is written to, +Perl will first extend the string with sufficiently many zero bytes. + +Strings created with C can also be manipulated with the logical +operators C<|>, C<&>, C<^>, and C<~>. These operators will assume a bit +vector operation is desired when both operands are strings. See L. The following code will build up an ASCII string saying C<'PerlPerlPerl'>.