Attribute-Handlers

 view release on metacpan or  search on metacpan

lib/Attribute/Handlers.pm  view on Meta::CPAN

135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
sub AUTOLOAD {
        return if $AUTOLOAD =~ /::DESTROY$/;
        my ($class) = $AUTOLOAD =~ m/(.*)::/g;
        $AUTOLOAD =~ m/_ATTR_(.*?)_(.*)/ or
            croak "Can't locate class method '$AUTOLOAD' via package '$class'";
        croak "Attribute handler '$2' doesn't handle $1 attributes";
}
 
my $builtin = qr/lvalue|method|locked|unique|shared/;
 
sub _gen_handler_AH_() {
        return sub {
            _resolve_lastattr if _delayed_name_resolution;
            my ($pkg, $ref, @attrs) = @_;
            my (undef, $filename, $linenum) = caller 2;
            foreach (@attrs) {
                my ($attr, $data) = /^([a-z_]\w*)(?:[(](.*)[)])?$/is or next;
                if ($attr eq 'ATTR') {
                        no strict 'refs';
                        $data ||= "ANY";
                        $raw{$ref} = $data =~ s/\s*,?\s*RAWDATA\s*,?\s*//;



( run in 0.229 second using v1.01-cache-2.11-cpan-a5abf4f5562 )