Magically called at each C<use indirect>. Turns the module off.
As explained in L</unimport>'s description, an C<use indirect> statement will lexically override a global policy previously installed by C<no indirect 'global', ...> (if there's one).
Magically called at each C<use indirect>. Turns the module off.
As explained in L</unimport>'s description, an C<use indirect> statement will lexically override a global policy previously installed by C<no indirect 'global', ...> (if there's one).
Returns the default error message that C<indirect> generates when an indirect method call is reported.
Returns the default error message that C<indirect> generates when an indirect method call is reported.
@@ -239,6+250,8 @@ If you use C<perl> 5.12 or greater, those constructs are correctly reported.
With 5.8 perls, the pragma does not propagate into C<eval STRING>.
This is due to a shortcoming in the way perl handles the hints hash, which is addressed in perl 5.10.
With 5.8 perls, the pragma does not propagate into C<eval STRING>.
This is due to a shortcoming in the way perl handles the hints hash, which is addressed in perl 5.10.
+Indirect constructs that appear in code C<eval>'d during the global destruction phase of a spawned thread or pseudo-fork (the processes used internally for the C<fork> emulation on Windows) are not reported.
+
The search for indirect method calls happens before constant folding.
Hence C<my $x = new Class if 0> will be caught.
The search for indirect method calls happens before constant folding.