the scope of $answer extends from its declaration through the rest
of that conditional, including any C<elsif> and C<else> clauses,
-but not beyond it.
-
-B<NOTE:> The behaviour of a C<my> statement modified with a statement
-modifier conditional or loop construct (e.g. C<my $x if ...>) is
-B<undefined>. The value of the C<my> variable may be C<undef>, any
-previously assigned value, or possibly anything else. Don't rely on
-it. Future versions of perl might do something different from the
-version of perl you try it out on. Here be dragons.
+but not beyond it. See L<perlsyn/"Simple statements"> for information
+on the scope of variables in statements with modifiers.
The C<foreach> loop defaults to scoping its index variable dynamically
in the manner of C<local>. However, if the index variable is
the argument C<"Foo/Bar.pm"> in @_. See L<perlfunc/require>.
And, as you'll have noticed from the previous example, if you override
-C<glob>, the C<E<lt>*E<gt>> glob operator is overridden as well.
+C<glob>, the C<< <*> >> glob operator is overridden as well.
In a similar fashion, overriding the C<readline> function also overrides
the equivalent I/O operator C<< <FILEHANDLE> >>.
of the original subroutine magically appears in the global $AUTOLOAD
variable of the same package as the C<AUTOLOAD> routine. The name
is not passed as an ordinary argument because, er, well, just
-because, that's why...
+because, that's why. (As an exception, a method call to a nonexistent
+C<import> or C<unimport> method is just skipped instead.)
Many C<AUTOLOAD> routines load in a definition for the requested
subroutine using eval(), then execute that subroutine using a special
use subs qw(date who ls);
date;
who "am", "i";
- ls -l;
+ ls '-l';
A more complete example of this is the standard Shell module, which
can treat undefined subroutine calls as calls to external programs.