Sets or gets the attributes of subroutines. Attributes are set for a
subroutine at compile time; therefore, setting an invalid attribute
results in a compile-time error. During execution, when you call attrs::get
on a subroutine reference or name, it returns the list of attributes
that are set. Note that attrs::get
is not exported.
For example:
The valid attributes are:sub test { use attrs qw(locked method); ... } @a = attrs::get(\foo);
locked
Meaningful only when the subroutine or method is to be called by
multiple threads. When set on a subroutine that also has the method
attribute set, invoking that subroutine implicitly locks its first
argument before execution. On a non-method subroutine, a lock is taken
on the subroutine itself before execution. The lock semantics are
identical to one taken explicitly with the lock
operator immediately
after entering the subroutine.
method
The invoking subroutine is a method.