[Cascavel-pm] Perl Dynamic Subroutines / Functions

Alceu Rodrigues de Freitas Junior glasswalk3r em yahoo.com.br
Sábado Maio 9 07:15:07 PDT 2009


Guilherme Sperb Machado escreveu:
> Vamos supor que eu tenha um programa perl X rodando em uma determinada
> maquina. Esse programa X é meramente um cliente, que pega informações
> de diversos servidores. Os servidores, por sua vez, são responsáveis
> por informar os programas clientes qual o comportamento que eles devem
> ter, quando, por exemplo, fizerem um webcrawling em determinados
> websites. Porém, justamente o ato de INFORMAR esse comportamento que
> não estou conseguindo achar uma maneira elegante e eficaz para fazer.
> Por isso pensei: existe como o servidor informar/passar SUBROTINAS
> INTEIRAS para os clientes, e os clientes "adaptarem" e usarem esse
> trecho de código em tempo de execução?
> 
> Isso é possível de alguma maneira?

Sim, mas vai depender exatamente do que esses "clientes" devem fazer.
Porque eu não consigo imaginar exatamente como o servidor pode despachar
serviço para os clientes de forma tão dinâmica que você não possa já
estabelecer de antemão o que eles deverão fazer.

Se você está nessa situação, você pode usar eval. Mas isso pode ser bem
perigoso porque seu cliente vai executar QUALQUER coisa. Procure pelo
módulo Safe.

Agora se suas operações vão ser modificadas só um pouco, você pode
tentar manipular a tabela de símbolos do Perl. Aqui vai algumas referências:

http://www.perl.com/lpt/a/910
http://www252.pair.com/comdog/mastering_perl/Chapters/08.symbol_tables.html

Eu particularmente achei a sintaxe bem complicada (tem alguma coisa no
CPAN para ajudar com isso, mas não lembro) mas funciona com certeza.

[]'s
Alceu


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