[SP-pm] Módulo

Thomas Britis thomas em tcnet.com.br
Terça Março 13 15:39:05 PDT 2007


Luis,

	Desculpe pelo atraso na resposta, é que fiquei entretido em outros 
projetos e acabei não podendo voltar a esse.

	Só uma pequena dúvida que fiquei, aqui:



Luis Motta Campos wrote:
>    Claro que não.
>    Num caso, você tem retornos numéricos (e eu presumo que assuma e  
> teste retornos numéricos em algum lugar do seu código, certo?)
>    No outro caso, você tem retorno objetivo - o efeito colateral mais  
> importante disto é que te permite encadear chamadas a outros métodos,  
> assim:
> 
>    $obj->method()->method2()->method3();

	Minha dúvida é: como posso fazer esse encadeamento? Pensei em algo como:

MODULO.pm:
package MODULO;

use strict;
use MODULO2;

sub new {
         my $proto = shift;
         my $class = ref $proto || $proto;
         my $self = bless {} => $class;
         return $self;
}

sub test {
	my $self = shift;

	my $mod2 = MODULO2->new();
	bless $mod2;
	$self->mod2 = $mod2;
}

teste.pl:
use MODULO;

my $mod1 = MODULO->new();

# Chamar funcao bizarre() do modulo2:
$mod1->mod2->bizarre();

Ou ainda, com uma pequena alteração, eu ter mais uma função no 
MODULO.pm, com o seguinte conteúdo:

sub mod1_bizarre {
	my $self = shift;

	return $self->mod2->bizarre();
}

e chamá-la do teste.pl como:
$mod1->mod1_bizarre;

	Estou dando uma estudada em alguns artigos, porém fiquei com dúvidas 
nesse sentido, se é possível isso.

	Obrigado.
-- 
Thomas Storino Britis
TCNet Informatica e Telecomunicacoes LTDA


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