Hi Chris! Great!
I modify my Autoload.pm so ...
package Autoload;
use Locale::TextDomain ("kapello.it.$main::PROGRAM");
use Exporter;
@ISA = qw (Exporter);
@EXPORT = qw(AUTOLOAD);
use Carp;
sub AUTOLOAD{
my ($self, $newval) = @_;
# Costruisco il metodo get
if ($AUTOLOAD =~ /.*::get_(\w+)/){
my $property_name = $1;
my $ref = ref($self->{$property_name});
if ($ref eq 'ARRAY'){
*{$AUTOLOAD} = sub { my ($self) = @_; @{$self->{$property_
+name}} };
my ($self) = @_;
return @{$self->{$property_name}};
}
else{
*{$AUTOLOAD} = sub {my ($self) = @_; $self->{$property_nam
+e}};
my ($self) = @_;
return $self->{$property_name};
}
}
# Costruisco il metodo set
if ($AUTOLOAD =~ /.*::set_(\w+)/){
my $property_name = $1;
*{$AUTOLOAD} = sub {my ($self, $newval) = @_; $self->{$propert
+y_name} = $newval };
my ($self, $newval) = @_;
return $self->{$property_name} = $newval;
}
# Deve esserci un errore
croak __"Il metodo: $AUTOLOAD non è disponibile.";
}
1;
and seems works !!!
Thank you!!
ps. for now some test ... :-) |