[Cascavel-pm] Teste de variável na inicialização de um módulo.

Marco A P D'Andrade mdacwb em gmail.com
Sexta Junho 16 18:42:52 PDT 2006


Ou...

Que tal vc acionar uma configuração apropriada quanto for opção "-t" ??

#main.pl
...
if ($TEST){
  G::AssignTest();
} else{
  G::Assign();
}
...


package modules::G;

sub AssignTest {
  $gsubmission_url='http://url/de/testes';
  $gretrieval_url='http://url/de/testes/RetrieveListenerServlet';
  $glogin='LOGIN';
  $gpass='PASS';
}

sub Assign {
  $gsubmission_url='http://url/live';
  $gretrieval_url='http://url/live/RetrieveListenerServlet';
  $glogin='LOGIN_OFICIAL';
  $gpass='SENHA_OFICIAL';
}
#---

Não tenho conhecimento conceitual suficiente para afirmar com certeza,
mas acho que caberia ao modulo principal definir o comportamento do
modulo (ou classe) inicializada...

Com um comportamento variavel de acordo com uma variavel global vc
eleva o acoplamento por variaveis globais ...

Claro... outra opção, que eu possivelmente utilizaria é chamar um
modulo de inicialização, passando os parametros (não default), do
tipo:


  if ( $test ) {
     G::Init( submit =>  'http://url/de/testes', ... );
  }

package modules::G;

our ( $gsubmission_url, $gretrieval_url, $glogin, $gpass );


sub Init {
 my %args = @_;
  $gsubmission_url='http://url/live';
  $gretrieval_url='http://url/live/RetrieveListenerServlet';
  $glogin='LOGIN_OFICIAL';
  $gpass='SENHA_OFICIAL';
  if ( exists($args{submit}) ) {
     $gsubmission_url=$args{submit};
  }

  ...

}

2006/6/16, Igor Sutton <igor.sutton em gmail.com>:
> E se você utilizar uma variável de ambiente?
>
>  $ TEST=1 perl -e 'print
> (($ENV{TEST})?"TESTE!":"PRODUÇÃO"); print "\n"'
>
>  Você pode encapsular este teste dentro da função que gera os dados deste
> conector, por exemplo. Mas seguindo a sua linha de raciocínio:
>
--- cut ---


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