diff options
Diffstat (limited to 'ext/attrs')
-rw-r--r-- | ext/attrs/attrs.pm | 19 | ||||
-rw-r--r-- | ext/attrs/attrs.xs | 6 |
2 files changed, 14 insertions, 11 deletions
diff --git a/ext/attrs/attrs.pm b/ext/attrs/attrs.pm index e97fa1ee39..cec5ea5fcd 100644 --- a/ext/attrs/attrs.pm +++ b/ext/attrs/attrs.pm @@ -8,7 +8,7 @@ $VERSION = "1.0"; =head1 NAME -attrs - set/get attributes of a subroutine +attrs - set/get attributes of a subroutine (deprecated) =head1 SYNOPSIS @@ -21,11 +21,17 @@ attrs - set/get attributes of a subroutine =head1 DESCRIPTION -This module lets you set and get attributes for subroutines. +NOTE: Use of this pragma is deprecated. Use the syntax + + sub foo : locked, method { } + +to declare attributes instead. See also L<attributes>. + +This pragma lets you set and get attributes for subroutines. Setting attributes takes place at compile time; trying to set invalid attribute names causes a compile-time error. Calling -C<attr::get> on a subroutine reference or name returns its list -of attribute names. Notice that C<attr::get> is not exported. +C<attrs::get> on a subroutine reference or name returns its list +of attribute names. Notice that C<attrs::get> is not exported. Valid attributes are as follows. =over @@ -46,11 +52,6 @@ execution. The semantics of the lock are exactly those of one explicitly taken with the C<lock> operator immediately after the subroutine is entered. -=item lvalue - -Setting this attribute enables the subroutine to be used in -lvalue context. See L<perlsub/"Lvalue subroutines">. - =back =cut diff --git a/ext/attrs/attrs.xs b/ext/attrs/attrs.xs index a92922d497..4c00cd7cb2 100644 --- a/ext/attrs/attrs.xs +++ b/ext/attrs/attrs.xs @@ -10,8 +10,6 @@ get_flag(char *attr) return CVf_METHOD; else if (strnEQ(attr, "locked", 6)) return CVf_LOCKED; - else if (strnEQ(attr, "lvalue", 6)) - return CVf_LVALUE; else return 0; } @@ -29,6 +27,10 @@ char * Class PPCODE: if (!PL_compcv || !(cv = CvOUTSIDE(PL_compcv))) croak("can't set attributes outside a subroutine scope"); + if (ckWARN(WARN_DEPRECATED)) + Perl_warner(aTHX_ WARN_DEPRECATED, + "pragma \"attrs\" is deprecated, " + "use \"sub NAME : ATTRS\" instead"); for (i = 1; i < items; i++) { STRLEN n_a; char *attr = SvPV(ST(i), n_a); |