[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