X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlvar.pod;h=292f444dfe1291b4f57ae3370ef10f32db8d79ae;hb=8a2485f87de4ac33d6c8564ae6b27c5efc3e1430;hp=dfb17e3eed59c10a747d58577f31af6b001e3bd9;hpb=271df126cf460e6b3d92c5f448bd1ce92f177c3a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlvar.pod b/pod/perlvar.pod index dfb17e3..292f444 100644 --- a/pod/perlvar.pod +++ b/pod/perlvar.pod @@ -177,6 +177,11 @@ test. Outside a C test, this will not happen. =back +As C<$_> is a global variable, this may lead in some cases to unwanted +side-effects. As of perl 5.9.1, you can now use a lexical version of +C<$_> by declaring it in a file or in a block with C. Moreover, +declaring C restores the global C<$_> in the current scope. + (Mnemonic: underline is understood in certain operations.) =back @@ -189,10 +194,9 @@ test. Outside a C test, this will not happen. Special package variables when using sort(), see L. Because of this specialness $a and $b don't need to be declared -(using local(), use vars, or our()) even when using the strict -vars pragma. Don't lexicalize them with C or C -if you want to be able to use them in the sort() comparison block -or function. +(using use vars, or our()) even when using the C pragma. +Don't lexicalize them with C or C if you want to be +able to use them in the sort() comparison block or function. =back @@ -471,8 +475,6 @@ taken for something more important.) Consider using "real" multidimensional arrays as described in L. -=item $OFMT - =item $# The output format for printed numbers. This variable is a half-hearted @@ -763,7 +765,9 @@ you may use the CPAN module C. The real uid of this process. (Mnemonic: it's the uid you came I, if you're running setuid.) You can change both the real uid and -the effective uid at the same time by using POSIX::setuid(). +the effective uid at the same time by using POSIX::setuid(). Since +changes to $< require a system call, check $! after a change attempt to +detect any possible errors. =item $EFFECTIVE_USER_ID @@ -777,7 +781,8 @@ The effective uid of this process. Example: ($<,$>) = ($>,$<); # swap real and effective uid You can change both the effective uid and the real uid at the same -time by using POSIX::setuid(). +time by using POSIX::setuid(). Changes to $> require a check to $! +to detect any possible errors after an attempted change. (Mnemonic: it's the uid you went I, if you're running setuid.) C<< $< >> and C<< $> >> can be swapped only on machines @@ -800,7 +805,8 @@ set the real gid. So the value given by C<$(> should I be assigned back to C<$(> without being forced numeric, such as by adding zero. You can change both the real gid and the effective gid at the same -time by using POSIX::setgid(). +time by using POSIX::setgid(). Changes to $( require a check to $! +to detect any possible errors after an attempted change. (Mnemonic: parentheses are used to I things. The real gid is the group you I, if you're running setgid.) @@ -826,6 +832,8 @@ list, say C< $) = "5 5" >. You can change both the effective gid and the real gid at the same time by using POSIX::setgid() (use only a single numeric argument). +Changes to $) require a check to $! to detect any possible errors +after an attempted change. (Mnemonic: parentheses are used to I things. The effective gid is the group that's I for you, if you're running setgid.)