[Cascavel-pm] Constant Functions

Daniel ® Antunes danielrantunes em yahoo.com.br
Sexta Julho 11 07:52:04 PDT 2008


   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

    Ufa, acho que foi bem claro.
    Obrigado.


Daniel ® Antunes
gnu/linux user #238553



      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/10b2ecda/attachment.html>


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