[Cascavel-pm] Res: Constant Functions

Daniel ® Antunes danielrantunes em yahoo.com.br
Sexta Julho 11 08:47:32 PDT 2008


Putz, que simples... :)
Maravilha, obrigadão...

 Daniel ® Antunes
gnu/linux user #238553



----- Mensagem original ----
De: Eden Cardim <edencardim em gmail.com>
Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
Enviadas: Sexta-feira, 11 de Julho de 2008 12:28:37
Assunto: Re: [Cascavel-pm] Constant Functions

2008/7/11 Daniel (R) Antunes <danielrantunes em yahoo.com.br>:
>    Bom dia amigos...
>    Estou utilizando "constant functions" em uma série de módulos. Estes
> módulos têm basicamente a mesma função, mas consultam lugares diferentes,
> têm alguns comportamentos diferentes e o retorno deles é diferente, tudo é
> tratado e agrupado após o retorno.
>     Bom, as "constant functions" entram no sentido de facilitar a inclusão
> de novos módulos à medida da necessidade, constantemente entram novas fontes
> onde preciso buscar dados e para cada fonte crio um módulo.
>     As "constant functions" tem o mesmo nome em todos estes módulos, porém,
> apontam para ações de webservice diferentes, eu crio o módulo e somente
> altero estas ações e em muito pouco tempo tenho uma nova fonte operando.
>     Minha pergunta é, como referenciar de forma dinâmica estas constantes no
> módulo principal, segue uma forma muito simplificada do funcionamento :
>
> MODULO A
>
> sub SELFCODE {13};
> sub SELFNAME {'SUPPLIERA'};
> sub GET_PRODUCT_INFORMATION {'getStaticData_Product'};
> sub GET_DESTINATION_INFORMATION {'getStaticData_Destination'};
>
> MODULO B
>
> sub SELFCODE {61};
> sub SELFNAME {'SUPPLIERB'};
> sub GET_PRODUCT_INFORMATION {'productsData'};
> sub GET_DESTINATION_INFORMATION {'destinations'};
>
> MODULO PRINCIPAL
>
> my $supplier=$xml->{supplier}; # Supplier = A ou B
> my $pkg='Supplier::'.$supplier; # Supplier::A ou Supplier::B
> my $obj=$pkg->new();
> if ($xml->{type} eq 'product'){
>     $obj->{type}=$pkg::GET_PRODUCT_INFORMATION;
> }
> elsif ($xml->{type} eq 'destination'){
>     $obj->{type}=$pkg::GET_DESTINATION_INFORMATION;
> }
> $obj->processdata();
>
>     Meu problema é bastante simples, mas eu não estou conseguindo achar a
> solução.
>
> $pkg::GET_DESTINATION_INFORMATION
>
>     Dá este erro :
>
> Use of uninitialized value in print at /home/inquiry/s2Dev/Inquiry.pm line
> 440

Invoca a subrotina assim:

$pkg->GET_DESTINATION_INFORMATION

-- 
edenc.vox.com
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm



      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20080711/0a883d88/attachment.html>


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