This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Implement "my $_".
[perl5.git] / pod / perlvar.pod
index 43e1468..8fc7441 100644 (file)
@@ -177,6 +177,11 @@ test.  Outside a C<while> 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<my>.  Moreover,
+declaring C<our $> restores the global C<$_> in the current scope.
+
 (Mnemonic: underline is understood in certain operations.)
 
 =back
@@ -189,10 +194,9 @@ test.  Outside a C<while> test, this will not happen.
 
 Special package variables when using sort(), see L<perlfunc/sort>.
 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<my $a> or C<my $b>
-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<strict 'vars'> pragma.
+Don't lexicalize them with C<my $a> or C<my $b> 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<perllol>.
 
-=item $OFMT
-
 =item $#
 
 The output format for printed numbers.  This variable is a half-hearted
@@ -675,7 +677,7 @@ In the above I<meaningless> stands for anything: zero, non-zero,
 C<undef>.  A successful system or library call does B<not> set
 the variable to zero.
 
-If used an a string, yields the corresponding system error string.
+If used as a string, yields the corresponding system error string.
 You can assign a number to C<$!> to set I<errno> if, for instance,
 you want C<"$!"> to return the string for error I<n>, or you want
 to set the exit value for the die() operator.  (Mnemonic: What just
@@ -854,7 +856,8 @@ space occupied by the original C<$0>.
 In some platforms there may be arbitrary amount of padding, for
 example space characters, after the modified name as shown by C<ps>.
 In some platforms this padding may extend all the way to the original
-length of the argument area, no matter what you do.
+length of the argument area, no matter what you do (this is the case
+for example with Linux 2.2).
 
 Note for BSD users: setting C<$0> does not completely remove "perl"
 from the ps(1) output.  For example, setting C<$0> to C<"foobar"> may
@@ -1077,6 +1080,10 @@ Provide informative "file" names for evals based on the place they were compiled
 Provide informative names to anonymous subroutines based on the place they
 were compiled.
 
+=item 0x400
+
+Debug assertion subroutines enter/exit.
+
 =back
 
 Some bits may be relevant at compile-time only, some at
@@ -1331,24 +1338,11 @@ Be sure not to use a bareword as the name of a signal handler,
 lest you inadvertently call it. 
 
 If your system has the sigaction() function then signal handlers are
-installed using it.  This means you get reliable signal handling.  If
-your system has the SA_RESTART flag it is used when signals handlers are
-installed.  This means that system calls for which restarting is supported
-continue rather than returning when a signal arrives.  If you want your
-system calls to be interrupted by signal delivery then do something like
-this:
-
-    use POSIX ':signal_h';
-
-    my $alarm = 0;
-    sigaction SIGALRM, new POSIX::SigAction sub { $alarm = 1 }
-       or die "Error setting SIGALRM handler: $!\n";
-
-See L<POSIX>.
+installed using it.  This means you get reliable signal handling.
 
-The delivery policy of signals changed in Perl 5.8.0 from immediate
-(also known as "unsafe") to deferred, also known as "safe signals".
-See L<perlipc> for more information.
+The default delivery policy of signals changed in Perl 5.8.0 from 
+immediate (also known as "unsafe") to deferred, also known as 
+"safe signals".  See L<perlipc> for more information.
 
 Certain internal hooks can be also set using the %SIG hash.  The
 routine indicated by C<$SIG{__WARN__}> is called when a warning message is