Daniel,<br><br>Segue um exemplo:<br><br>t.pl:<br><code><br>use strict;<br>use warnings;<br><br>use G;<br><br># é necessário para que o módulo G possa enxergar a variável.<br>our $TEST = 1;<br><br>G->run();<br></code>
<br><br><a href="http://G.pm">G.pm</a>:<br><code><br>package G;<br><br>sub run {<br> my $instance = "live";<br> $instance = "test" if ($main::TEST);<br> print "$instance\n";<br>
}<br>1;<br></code><br><br>Então, o *our* é necessário para que a variável possa ser vista fora do escopo do pacote main.<br><br>Espero que ajude.<br><br><div><span class="gmail_quote">On 6/16/06, <b class="gmail_sendername">
Daniel R. Antunes</b> <<a href="mailto:danielrantunes@yahoo.com.br">danielrantunes@yahoo.com.br</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Olá amigos da lista...<br> 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. :)
<br> Bom, vamos ao problema que estou tendo :<br><br>package modules::G;<br>require Exporter;<br>use strict;<br>use LWP::UserAgent;<br>use funcs;<br># Export some symbols<br>our @ISA = qw(Exporter);<br>
our @EXPORT = qw( &construct_G_XML_doc<br> submit_G<br> &g_start<br> &g_char
<br> &g_end);<br>our @EXPORT_OK = qw();<br>our $VERSION = 0.01;<br># Global variables<br>my $false=0;<br>my $true=1;<br>my $gsubmission_url;<br>my $gretrieval_url;
<br>my $glogin;<br>my $gpass;<br># Used by parsers<br>my %audit_info;<br>my %summary_info;<br>my %product;<br>my $spCode;<br><br> Isto faz parte do módulo G de meu sistema (um daemon) e está funcionando<br>perfeitamente.
<br> Mas... Eu tenho uma variável chamada TEST que é setada na<br>inicialização do serviço usando "-t", o getopt pega esta informação e<br>torna o TEST true ou false, isto está no main; eu gostaria de testá-la
<br>no ponto inicial deste módulo assim :<br><br>if ($main::TEST){<br> $gsubmission_url='<a href="http://url/de/testes">http://url/de/testes</a>';<br> $gretrieval_url='<a href="http://url/de/testes/RetrieveListenerServlet">
http://url/de/testes/RetrieveListenerServlet</a>';<br> $glogin='LOGIN';<br> $gpass='PASS';<br>}<br>else{<br> $gsubmission_url='<a href="http://url/live">http://url/live</a>';<br> $gretrieval_url='<a href="http://url/live/RetrieveListenerServlet">
http://url/live/RetrieveListenerServlet</a>';<br> $glogin='LOGIN_OFICIAL';<br> $gpass='SENHA_OFICIAL';<br>}<br><br> Mas eu não estou conseguindo, ele sempre entra no else por que o main::TEST<br>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 é
<br>como está por hora. :(<br> Alguém poderia me ajudar ?<br> Desde já muito obrigado.<br><br><br>--<br>|---------------------------------------------.---.-\<br>| Daniel R. Antunes (Profiss. de informática) )\-/( |
<br>| ...... <a href="http://www.daniel-antunes.com.br">www.daniel-antunes.com.br</a> (Web Site) (OvO) |<br>| ... <a href="mailto:danielrantunes@sorria.com.br">danielrantunes@sorria.com.br</a> (M$Nmsger) (( )) |<br>|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"~"~~|
<br>| ICQº 107888741 ~ GNU/Linuxº 238553 ~ GotNiX 'ÜÜÜ' |<br>\---------------------------------------------------|<br><br><br><br><br><br><br>_______________________________________________________<br>Yahoo! doce lar. Faça do Yahoo! sua homepage.
<br><a href="http://br.yahoo.com/homepageset.html">http://br.yahoo.com/homepageset.html</a><br><br>_______________________________________________<br>Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org
</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>Igor Sutton Lopes<br><a href="http://www.izut.com/">
http://www.izut.com/</a>