<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt">Putz, que simples... :)<br>Maravilha, obrigadão...<br><div>&nbsp;</div>Daniel ® Antunes<br><em></em><em><font color="#007f40">gnu/linux user</font></em> #238553<div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Mensagem original ----<br>De: Eden Cardim &lt;edencardim@gmail.com&gt;<br>Para: Cascavel Perl Mongers &lt;cascavel-pm@pm.org&gt;<br>Enviadas: Sexta-feira, 11 de Julho de 2008 12:28:37<br>Assunto: Re: [Cascavel-pm] Constant Functions<br><br>2008/7/11 Daniel (R) Antunes &lt;<a ymailto="mailto:danielrantunes@yahoo.com.br" href="mailto:danielrantunes@yahoo.com.br">danielrantunes@yahoo.com.br</a>&gt;:<br>&gt;&nbsp; &nbsp; Bom dia amigos...<br>&gt;&nbsp; &nbsp; Estou
 utilizando "constant functions" em uma série de módulos. Estes<br>&gt; módulos têm basicamente a mesma função, mas consultam lugares diferentes,<br>&gt; têm alguns comportamentos diferentes e o retorno deles é diferente, tudo é<br>&gt; tratado e agrupado após o retorno.<br>&gt;&nbsp; &nbsp;  Bom, as "constant functions" entram no sentido de facilitar a inclusão<br>&gt; de novos módulos à medida da necessidade, constantemente entram novas fontes<br>&gt; onde preciso buscar dados e para cada fonte crio um módulo.<br>&gt;&nbsp; &nbsp;  As "constant functions" tem o mesmo nome em todos estes módulos, porém,<br>&gt; apontam para ações de webservice diferentes, eu crio o módulo e somente<br>&gt; altero estas ações e em muito pouco tempo tenho uma nova fonte operando.<br>&gt;&nbsp; &nbsp;  Minha pergunta é, como referenciar de forma dinâmica estas constantes no<br>&gt; módulo principal, segue uma forma muito simplificada do
 funcionamento :<br>&gt;<br>&gt; MODULO A<br>&gt;<br>&gt; sub SELFCODE {13};<br>&gt; sub SELFNAME {'SUPPLIERA'};<br>&gt; sub GET_PRODUCT_INFORMATION {'getStaticData_Product'};<br>&gt; sub GET_DESTINATION_INFORMATION {'getStaticData_Destination'};<br>&gt;<br>&gt; MODULO B<br>&gt;<br>&gt; sub SELFCODE {61};<br>&gt; sub SELFNAME {'SUPPLIERB'};<br>&gt; sub GET_PRODUCT_INFORMATION {'productsData'};<br>&gt; sub GET_DESTINATION_INFORMATION {'destinations'};<br>&gt;<br>&gt; MODULO PRINCIPAL<br>&gt;<br>&gt; my $supplier=$xml-&gt;{supplier}; # Supplier = A ou B<br>&gt; my $pkg='Supplier::'.$supplier; # Supplier::A ou Supplier::B<br>&gt; my $obj=$pkg-&gt;new();<br>&gt; if ($xml-&gt;{type} eq 'product'){<br>&gt;&nbsp; &nbsp;  $obj-&gt;{type}=$pkg::GET_PRODUCT_INFORMATION;<br>&gt; }<br>&gt; elsif ($xml-&gt;{type} eq 'destination'){<br>&gt;&nbsp; &nbsp;  $obj-&gt;{type}=$pkg::GET_DESTINATION_INFORMATION;<br>&gt; }<br>&gt; $obj-&gt;processdata();<br>&gt;<br>&gt;&nbsp;
 &nbsp;  Meu problema é bastante simples, mas eu não estou conseguindo achar a<br>&gt; solução.<br>&gt;<br>&gt; $pkg::GET_DESTINATION_INFORMATION<br>&gt;<br>&gt;&nbsp; &nbsp;  Dá este erro :<br>&gt;<br>&gt; Use of uninitialized value in print at /home/inquiry/s2Dev/Inquiry.pm line<br>&gt; 440<br><br>Invoca a subrotina assim:<br><br>$pkg-&gt;GET_DESTINATION_INFORMATION<br><br>-- <br>edenc.vox.com<br>_______________________________________________<br>Cascavel-pm mailing list<br><a ymailto="mailto:Cascavel-pm@pm.org" href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></div></div></div><br>


      <hr size=1>Novos endereços, o Yahoo! que você conhece. <a href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.new.mail.yahoo.com/addresses">Crie um email novo</a> com a sua cara @ymail.com ou @rocketmail.com.</body></html>