Yes.

use strict; package LoudDecl; use Attribute::Handlers; use attributes; sub FETCH_CODE_ATTRIBUTES { qw(Loud) } sub Loud :ATTR { print "NOISE!\n"; } sub foo: Loud method { print 1; } print "Attributes: "; print join ', ', attributes::get(\&foo); print "\n"; __END__ NOISE! Attributes: method, Loud

See attributes, section "Package-specific Attribute Handling".

update: if you define multiple attributes, you might want to return the right attributes associated to the sub questioned:

use strict; package LoudDecl; use Attribute::Handlers; use attributes; use Scalar::Util; my %attrs; sub FETCH_CODE_ATTRIBUTES { @{$attrs{Scalar::Util::refaddr($_[1])}}; } sub Loud :ATTR { print "NOISE!\n"; no strict 'refs'; push @{$attrs{Scalar::Util::refaddr($_[2])}}, 'Loud'; } sub Boom :ATTR { print "BOOM!\n"; no strict 'refs'; push @{$attrs{Scalar::Util::refaddr($_[2])}}, 'Boom'; } sub foo: Loud method { print 1; } sub bar : Loud Boom method { print "pling.\n"; } print "Attributes: "; print join ', ', attributes::get(\&bar); print "\n"; __END__ NOISE! NOISE! BOOM! Attributes: method, Loud, Boom

In reply to Re: Support for attributes:get in Attribute::Handlers? by shmem
in thread Support for attributes:get in Attribute::Handlers? by Thilosophy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.