In Perl, how does one export an attribute handler?
Do the following:
package MyAttrDecl;
use strict;
use warnings;
require Exporter;
our @EXPORT = qw( _ATTR_CODE_MyAttr );
our @ISA = qw( Exporter );
  
sub MyAttr :ATTR(CODE) 
{
    my ($package, $symbol, $referent, $attr, $data, $phase, $filename, $linenum) = @_;
    my $name = *{$symbol}{NAME};
    warn "Adding an attribute to package=$package name=$name";
}
1;
The important part is _ATTR_CODE_MyAttr.  Obviously you change this to match your code.
The above is called with the following:
use MyAttrDecl;
sub new :MyAttr( "/pos/v1" )
{
    return bless {}, shift;
}
 
No comments:
Post a Comment