X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2Findirect.pm;h=4484dae086a7af00d0d8accc3ce0cbd9ac8418a7;hb=a6e7df84c1196a8c6d12692a06d913a24c5d530a;hp=ff473d46984f23da4f7ae6a6bdc6323c93ff2ee5;hpb=d4d9cefeb432c16bc7994c784bed08b6b17f2b25;p=perl%2Fmodules%2Findirect.git diff --git a/lib/indirect.pm b/lib/indirect.pm index ff473d4..4484dae 100644 --- a/lib/indirect.pm +++ b/lib/indirect.pm @@ -11,13 +11,13 @@ indirect - Lexically warn about using the indirect object syntax. =head1 VERSION -Version 0.09_01 +Version 0.11 =cut our $VERSION; BEGIN { - $VERSION = '0.09_01'; + $VERSION = '0.11'; } =head1 SYNOPSIS @@ -57,20 +57,27 @@ BEGIN { } sub import { - $^H{indirect} = undef; + $^H{+(__PACKAGE__)} = undef; + (); } +my $msg = sub { "Indirect call of method \"$_[1]\" on object \"$_[0]\"" }; + sub unimport { (undef, my $type) = @_; $^H |= 0x00020000; - $^H{indirect} = (defined $type and $type eq ':fatal') ? 2 : 1; + my $cb = (defined $type and $type eq ':fatal') + ? sub { die $msg->(@_) } + : sub { warn $msg->(@_) }; + $^H{+(__PACKAGE__)} = _tag($cb); + (); } -=head1 DEPENDENCIES +=head1 CONSTANTS -L 5.8. +=head2 C -L (standard since perl 5.006). +True iff the module could have been built when thread-safety features. =head1 CAVEATS @@ -79,6 +86,12 @@ C (no semicolon) at the end of a file won't be seen as an indirect ob 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. +=head1 DEPENDENCIES + +L 5.8. + +L (standard since perl 5.006). + =head1 AUTHOR Vincent Pit, C<< >>, L. @@ -103,7 +116,7 @@ Bram, for motivation and advices. =head1 COPYRIGHT & LICENSE -Copyright 2008 Vincent Pit, all rights reserved. +Copyright 2008-2009 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.