[Cascavel-pm] get/set com AUTOLOAD

Joenio Marques joenio em gmail.com
Quarta Dezembro 28 08:45:47 PST 2005


Boa tarde Monges,
Estou precisando de uma ajudinha aqui...

Criei uma classe com metodos get/set utilizando AUTOLOAD, assim:

sub AUTOLOAD {
    my $self = shift;
    my $attr = our $AUTOLOAD;
    $attr =~ s/.*://;
    return if $attr =~ /::DESTROY$/;
    $self->{$attr} = shift if @_;
    return $self->{$attr};
}

Numa outra classe faço isso:

$url =~ /id=(.+?)&/;
$obj->codigo($1);

$obj é uma instancia da minha classe com AUTOLOAD
e codigo é um dos atributos da classe.

Mas isso não esta funcionando, o atributo não é setado.
Fazendo da forma abaixo funciona:

$url =~ /id=(.+?)&/;
$obj->codigo("$1"); #note aspas

OU

$url =~ /id=(.+?)&/;
$cod = $1;
$obj->codigo($cod);

Alguem poderia me ajudar a entender o que esta acontecendo?

Grato,
--
Joenio Marques
- Salvador Perl Mongers


Mais detalhes sobre a lista de discussão Cascavel-pm