E se você utilizar uma variável de ambiente?<br>
<br>
$ TEST=1 perl -e 'print (($ENV{TEST})?"TESTE!":"PRODUÇÃO"); print "\n"'<br>
<br>
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:<br>
<br>
<code><br>
if ($ENV{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>
</code><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;">
Oi Igor, muito grato pela ajuda.<br> Na verdade o módulo G é um "adendo" de um objeto chamado Inq; este<br>objeto se comporta diferente de acordo com a informação fornecida em um<br>XML e neste caso eu não posso setar na inicialização do objeto pois este
<br>já existe qdo o módulo G é invocado. Assim como o módulo G eu tenho o T,<br>TP, GT e J que se conectam a lugares diferentes com senhas diferentes e<br>enviando solicitações em formatos diferentes. O "-t" é uma forma de
<br>debug na conexão com estes servidores. É realmente complicado. :)<br> Conforme sugestão do caro amigo Flávio eu tentei o INIT e o BEGIN da<br>seguinte forma :<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>INIT{<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># Used by parsers<br>my %audit_info;<br>
my %summary_info;<br>my %product;<br>my $spCode;<br><br> Ambos não funcionaram tbem.<br> Um exemplo de sub dentro do módulo G seria este :<br><br>sub construct_T_XML_doc{<br> my $obj=shift;<br> if ($obj->{searchingByID}){
<br> $obj->{xml}.="<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";<br> $obj->{xml}.="<SByID xmlns=\"<a href="http://g.com/webservices/\">http://g.com/webservices/\
</a>">\n";<br> $obj->{xml}.="\t<clIdInfo>";<br> $obj->{xml}.=$obj->parse_block("\t\t\t\t<IdInfo id=\"{svccode}\"<br>/>",'services');<br> $obj->{xml}.="\t</clIdInfo>";
<br> $obj->{xml}.="</SByID>\n";<br> $obj->{soapaction}="SByID"<br> }<br> ... <-Aqui ele se conecta usando as variáveis gsubmission_url, etc...<br>}<br><br> Se eu coloco o if dentro desta sub (por exemplo) o danado funciona.
<br> Neste caso Flávio creio que seja necessário testar a variável "TEST"<br>em tempo de execução.<br> Obrigado amigos.<br><br><br>Igor Sutton wrote:<br><br>> 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> <<a href="http://G.pm">http://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
<br>> do escopo do pacote main.<br>><br>> Espero que ajude.<br>><br>> On 6/16/06, * Daniel R. Antunes* <<a href="mailto:danielrantunes@yahoo.com.br">danielrantunes@yahoo.com.br</a><br>> <mailto:<a href="mailto:danielrantunes@yahoo.com.br">
danielrantunes@yahoo.com.br</a>>> wrote:<br>><br>> Olá amigos da lista...<br>> Eu postei esta mensagem no "perl-br" mas infelizmente ninguém<br>> respondeu, desculpem se minha pergunta for obvia por demais, mas é
<br>> uma dificuldade que estou tendo e não conseguindo resolver. Eu<br>> venho da linguagem C/C++ e ainda apanho com alguns aspectos do<br>> Perl, principalmente as questões relacionadas a namespaces,
<br>> variáveis de pacote, escopos léxicos, enfim... Acho que tenho me<br>> saido bem na migração, mas... Obs: Eu encomendei o livro "Perl for<br>> C programmers" para ver se paro de encher a paciência dos amigos
<br>> 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á
<br>> 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<br>> 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<br>> o main::TEST<br>> não existe neste ponto (inicio do módulo), eu utilizo o "strict" e
<br>> o "-w" na inicialização do serviço, no entanto nenhum erro é<br>> 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>><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> <mailto:<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>
><br>><br>><br>><br>> --<br>> Igor Sutton Lopes<br>> <a href="http://www.izut.com/">http://www.izut.com/</a><br>><br>>------------------------------------------------------------------------<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>><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>Yahoo! Acesso Grátis - Internet rápida e grátis. Instale
<br>o discador agora!<br><a href="http://br.acesso.yahoo.com">http://br.acesso.yahoo.com</a><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>