| … | |
… | |
| 26 | |
26 | |
| 27 | bless $self, $class; |
27 | bless $self, $class; |
| 28 | return $self; |
28 | return $self; |
| 29 | } |
29 | } |
| 30 | |
30 | |
|
|
31 | sub can($$) { |
|
|
32 | my ($self, $function) = @_; |
|
|
33 | return grep { $_ eq $function } $self->FIELDS(); |
|
|
34 | } |
|
|
35 | |
| 31 | sub AUTOLOAD($;@) { |
36 | sub AUTOLOAD($;@) { |
| 32 | my ($self, @args) = @_; |
37 | my ($self, @args) = @_; |
| 33 | our $AUTOLOAD; |
38 | our $AUTOLOAD; |
| 34 | my ($package, $function) = $AUTOLOAD =~ m/^(.*)::(.*)$/; |
39 | my ($package, $function) = $AUTOLOAD =~ m/^(.*)::(.*)$/; |
| 35 | return if $function eq "DESTROY"; |
40 | return if $function eq "DESTROY"; |