X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Findirect.git;a=blobdiff_plain;f=lib%2Findirect.pm;h=9b83528b827ce05ee3ec7c629c795bd7dc4ae651;hp=1e0827412080392f1def20a9cba6dcb45db81383;hb=151cd36187c8ee6100e515cfb94ed3334a3ae9e3;hpb=75a60b70d39a18521fcf5c2fbc7266100da27110 diff --git a/lib/indirect.pm b/lib/indirect.pm index 1e08274..9b83528 100644 --- a/lib/indirect.pm +++ b/lib/indirect.pm @@ -1,6 +1,6 @@ package indirect; -use 5.008001; +use 5.008_001; use strict; use warnings; @@ -11,13 +11,13 @@ indirect - Lexically warn about using the indirect method call syntax. =head1 VERSION -Version 0.25 +Version 0.33 =cut our $VERSION; BEGIN { - $VERSION = '0.25'; + $VERSION = '0.33'; } =head1 SYNOPSIS @@ -78,7 +78,14 @@ BEGIN { =head1 METHODS -=head2 C<< unimport [ 'global', hook => $hook | 'fatal' ] >> +=head2 C + + no indirect; + no indirect 'fatal'; + no indirect hook => sub { my ($obj, $name, $file, $line) = @_; ... }; + no indirect 'global'; + no indirect 'global, 'fatal'; + no indirect 'global', hook => sub { ... }; Magically called when C is encountered. Turns the module on. @@ -168,6 +175,8 @@ sub unimport { =head2 C + use indirect; + Magically called at each C. Turns the module off. As explained in L's description, an C statement will lexically override a global policy previously installed by C (if there's one). @@ -183,7 +192,9 @@ sub import { =head1 FUNCTIONS -=head2 C +=head2 C + + my $msg = msg($object, $method, $file, $line); Returns the default error message that C generates when an indirect method call is reported. @@ -239,6 +250,8 @@ If you use C 5.12 or greater, those constructs are correctly reported. With 5.8 perls, the pragma does not propagate into C. 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'd during the global destruction phase of a spawned thread or pseudo-fork (the processes used internally for the C emulation on Windows) are not reported. + The search for indirect method calls happens before constant folding. Hence C will be caught. @@ -249,7 +262,7 @@ L 5.8.1. A C compiler. This module may happen to build with a C++ compiler as well, but don't rely on it, as no guarantee is made in this regard. -L (standard since perl 5), L (since perl 5.006). +L (standard since perl 5), L (since perl 5.6.0). =head1 AUTHOR @@ -278,7 +291,7 @@ Andrew Main and Florian Ragwitz, for testing on real-life code and reporting iss =head1 COPYRIGHT & LICENSE -Copyright 2008,2009,2010,2011 Vincent Pit, all rights reserved. +Copyright 2008,2009,2010,2011,2012,2013,2014 Vincent Pit, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.