[SP-pm] Módulo
Thomas Britis
thomas em tcnet.com.br
Segunda Março 5 09:08:26 PST 2007
Senhores,
Apenas como complemento:
Eu sei que se eu fizer:
$jj = $jj->bla ($jj);
e fizer na função bla() do PM:
sub bla {
my $self = shift;
$self->{tchau} = 10;
return $self;
}
eu vou ter o valor que quero. Porém, o que eu quero saber é se posso
mexer no $jj sem ter que retorná-lo. Assim como pode ser feito em C.
Obrigado.
Thomas Britis wrote:
> Senhores,
>
> Tenho uma pequena dúvida e com certeza vcs podem me ajudar.
>
> Fiz um pequeno teste da seguinte forma:
>
> arquivo: UGLY.pm
>
> package UGLY;
> use strict;
>
> sub new {
> my $self = {};
>
> bless $self;
>
> $self->{oi} = 3;
> return $self;
> }
>
> arquivo: teste.pl
>
> BEGIN { unshift (@INC, "."); }
> my $jj = UGLY->new();
>
> print $jj->{oi}, "\n";
>
> Pois bem, imprimiu o 3 como devido. Minha dúvida é: eu posso trabalhar
> com a mesma variavel jj (que é o $self retornado pelo new() do módulo)
> DENTRO do módulo? Explico:
>
> Além da função new() no módulo eu tivesse:
> sub bla {
> my $self = shift;
>
> $self->{tchau} = 10;
> }
>
> e chamasse no teste.pl:
> $jj->tchau UGLY;
> ou ainda:
> $jj->tchau ($jj);
> ou sei lá o que, mas que eu tivesse no arquivo pl (e não no módulo) o
> retorno da função bla, ou seja:
> print $jj->{tchau}, "\n";
>
> Se fui muito confuso, por favor, me avisem.
>
> Obrigado.
--
Thomas Storino Britis
TCNet Informatica e Telecomunicacoes LTDA
Mais detalhes sobre a lista de discussão SaoPaulo-pm