[Cascavel-pm] Perl Dynamic Subroutines / Functions

Nilson Santos Figueiredo Jr. acid06 em gmail.com
Sexta Maio 8 22:43:05 PDT 2009


2009/5/8 Guilherme Sperb Machado <gsmachado em gmail.com>:
> 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.
O seu servidor pode enviar código em Perl (uma string de código) que
os clientes irão executar.

Isso é feito através do comando:

  eval $string;

Note que isso pode ter implicações de segurança gravíssimas se for mal
utilizado.

Uma outra maneira mais segura e tradicional seria separar as possíveis
ações em classes diferentes e o servidor informaria ao cliente quando
classe utilizar para processar aquele pedaço de informação e todas as
classes iriam aderir à uma interface comum.

-Nilson


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