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

Daniel R. Antunes danielrantunes em yahoo.com.br
Sexta Junho 16 11:52:52 PDT 2006


    Olá amigos da lista...
    Eu postei esta mensagem no "perl-br" mas infelizmente ninguém respondeu, desculpem se minha pergunta for obvia por demais, mas é uma dificuldade que estou tendo e não conseguindo resolver. Eu venho da linguagem C/C++ e ainda apanho com alguns aspectos do Perl, principalmente as questões relacionadas a namespaces, variáveis de pacote, escopos léxicos, enfim... Acho que tenho me saido bem na migração, mas... Obs: Eu encomendei o livro "Perl for C programmers" para ver se paro de encher a paciência dos amigos com estas perguntas. :)
    Bom, vamos ao problema que estou tendo :

package modules::G;
require Exporter;
use strict;
use LWP::UserAgent;
use funcs;
# Export some symbols
our @ISA                =    qw(Exporter);
our @EXPORT            =    qw(    &construct_G_XML_doc
                                            submit_G
                                            &g_start
                                            &g_char
                                            &g_end);
our @EXPORT_OK    =    qw();
our $VERSION        =    0.01;
# Global variables
my $false=0;
my $true=1;
my $gsubmission_url;
my $gretrieval_url;
my $glogin;
my $gpass;
# Used by parsers
my %audit_info;
my %summary_info;
my %product;
my $spCode;

    Isto faz parte do módulo G de meu sistema (um daemon) e está funcionando 
perfeitamente.
    Mas... Eu tenho uma variável chamada TEST que é setada na 
inicialização do serviço usando "-t", o getopt pega esta informação e 
torna o TEST true ou false, isto está no main; eu gostaria de testá-la 
no ponto inicial deste módulo assim :

if ($main::TEST){
   $gsubmission_url='http://url/de/testes';
   $gretrieval_url='http://url/de/testes/RetrieveListenerServlet';
   $glogin='LOGIN';
   $gpass='PASS';   
}
else{
   $gsubmission_url='http://url/live';
   $gretrieval_url='http://url/live/RetrieveListenerServlet';
   $glogin='LOGIN_OFICIAL';
   $gpass='SENHA_OFICIAL';
}

    Mas eu não estou conseguindo, ele sempre entra no else por que o main::TEST 
não existe neste ponto (inicio do módulo), eu utilizo o "strict" e o "-w" na inicialização do serviço, no entanto nenhum erro é reportado. Se eu coloco em qualquer das subs do módulo funciona, e é 
como está por hora.  :( 
    Alguém poderia me ajudar ?
    Desde já muito obrigado.


-- 
|---------------------------------------------.---.-\
| Daniel R. Antunes (Profiss. de informática) )\-/( |
| ...... www.daniel-antunes.com.br (Web Site) (OvO) |
| ... danielrantunes em sorria.com.br (M$Nmsger) (( )) |
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"~"~~|
| ICQº 107888741 ~ GNU/Linuxº 238553 ~ GotNiX 'ÜÜÜ' |
\---------------------------------------------------|


	

	
		
_______________________________________________________ 
Yahoo! doce lar. Faça do Yahoo! sua homepage. 
http://br.yahoo.com/homepageset.html 



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