X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fattributes.pm;h=22afaef3f434f161f2c5934e91430b8b93ff6896;hb=55f4245edad4e38b1869f0a6467a997a59257a0f;hp=84a820a1e7350fce9e88560181d37bbf8ac2e557;hpb=fd40b97705941d5479f90aeef3b20f8407859c14;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/attributes.pm b/lib/attributes.pm index 84a820a..22afaef 100644 --- a/lib/attributes.pm +++ b/lib/attributes.pm @@ -1,6 +1,6 @@ package attributes; -our $VERSION = 0.05; +our $VERSION = 0.08; @EXPORT_OK = qw(get reftype); @EXPORT = (); @@ -23,7 +23,6 @@ sub carp { #sub _fetch_attrs ($) ; #sub _guess_stash ($) ; #sub _modify_attrs ; -#sub _warn_reserved () ; # # The extra trips through newATTRSUB in the interpreter wipe out any savings # from avoiding the BEGIN block. Just do the bootstrap now. @@ -43,9 +42,10 @@ sub import { my @badattrs; if ($pkgmeth) { my @pkgattrs = _modify_attrs($svref, @attrs); - @badattrs = $pkgmeth->($home_stash, $svref, @attrs); + @badattrs = $pkgmeth->($home_stash, $svref, @pkgattrs); if (!@badattrs && @pkgattrs) { - return unless _warn_reserved; + require warnings; + return unless warnings::enabled('reserved'); @pkgattrs = grep { m/\A[[:lower:]]+(?:\z|\()/ } @pkgattrs; if (@pkgattrs) { for my $attr (@pkgattrs) { @@ -165,6 +165,10 @@ The following are the built-in attributes for subroutines: =item locked +B<5.005 threads only! The use of the "locked" attribute currently +only makes sense if you are using the deprecated "Perl 5.005 threads" +implementation of threads.> + Setting this attribute is only meaningful when the subroutine or method is to be called by multiple threads. When set on a method subroutine (i.e., one marked with the B attribute below), @@ -251,10 +255,10 @@ The class methods invoked for modifying and fetching are these: =item FETCH_I_ATTRIBUTES -This method receives a single argument, which is a reference to the -variable or subroutine for which package-defined attributes are desired. -The expected return value is a list of associated attributes. -This list may be empty. +This method is called with two arguments: the relevant package name, +and a reference to a variable or subroutine for which package-defined +attributes are desired. The expected return value is a list of +associated attributes. This list may be empty. =item MODIFY_I_ATTRIBUTES