Hum... Se bem que uma solução melhor para o seu problema seria passar a flag na inicialização do seu objeto:<br><br><code><br>use G;<br><br>my $g = G->new(test => $test);<br>$g->run();<br></code><br><br>
Igor.<br><br><div><span class="gmail_quote">On 6/16/06, <b class="gmail_sendername">Igor Sutton</b> <<a href="mailto:igor.sutton@gmail.com">igor.sutton@gmail.com</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;">
<div>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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">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.</div><div><span class="e" id="q_10bde3cc014673a3_1"><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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://url/de/testes</a>';<br>
$gretrieval_url='<a href="http://url/de/testes/RetrieveListenerServlet" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://url/de/testes/RetrieveListenerServlet</a>';<br> $glogin='LOGIN';<br> $gpass='PASS';<br>}<br>else{<br> $gsubmission_url='<a href="http://url/live" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://url/live</a>';<br> $gretrieval_url='<a href="http://url/live/RetrieveListenerServlet" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">www.daniel-antunes.com.br</a> (Web Site) (OvO) |<br>| ... <a href="mailto:danielrantunes@sorria.com.br" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://br.yahoo.com/homepageset.html</a><br><br>_______________________________________________<br>
Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Cascavel-pm@pm.org
</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br><br clear="all">
<br></span></div><div><span class="sg">-- <br>Igor Sutton Lopes<br><a href="http://www.izut.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.izut.com/</a>
</span></div></blockquote></div><br><br clear="all"><br>-- <br>Igor Sutton Lopes<br><a href="http://www.izut.com/">http://www.izut.com/</a>