[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