[Cascavel-pm] Perl Dynamic Subroutines / Functions

Guilherme Sperb Machado gsmachado em gmail.com
Quarta Maio 13 13:55:02 PDT 2009


Thomas,

Eh exatamente isso que eu QUERO FAZER, mas não sei COMO FAZER EM PERL
(em termos de programação). :-)

Em um proximo email, juro que explico o problema pra vocês... Ele é
simples, e me indicarão milhares de outras soluções que eu tenho algum
conhecimento. Porém, quero fazer o mais modular possível para que não
haja mudanças nos clientes no meio do desenvolvimento... por isso,
estou impondo certas restrições. :-)

abraço,
Guilherme Sperb Machado


2009/5/13 Thomas Britis <thomas em tcnet.com.br>:
> Pelo que entendi, ele quer o seguinte:
>
> 1- Cliente sobe somente com as funções de socket() (ou que quer que seja q
> se comunique com o servidor).
> 2- Servidor diz para o cliente quais as funções que ele deve conhecer (sem
> que o cliente tenha idéia do que se tratava, ou seja, não são funções
> pré-estabelecidas).
> 3- Cliente executa diretivas utilizando a função recebida do servidor.
>
> Algo como:
> Cliente1: Estou UP e simplesmente isso.
> Server: Ei cliente1, conheça a função: sub foo { return q(bar); }
> Cliente1: Recebi uma requisição solicitando que eu execute a função foo().
>
>        E essa comunicação de funções seriam dinâmicas.
>
> Nilson Santos Figueiredo Jr. wrote:
>>
>> 2009/5/12 Guilherme Sperb Machado <gsmachado em gmail.com>:
>>
>>> Porém, seguinte, é impossível em perl definir ua função e atribuir a
>>> uma variável (like, $a = sub bbb{ print "abc\n"; }; ) e enviar essa
>>> variável para um OUTRO código remotamente, para que o outro programa
>>> USE a função definida na variável $a ?!
>>>
>>> Eu não testei isso com eval, porque eu nunca usei o eval
>>> explicitamente pra isso, mas creio que não funcione, porque o que tu
>>> vai passar pro eval é uma string.... e o $a, no caso do meu exemplo,
>>> eh uma referencia pra uma estrutura... ou algo do genero.
>>
>>
>> Pra ser sincero, eu não entendi exatamente o que você quis dizer.
>> Assim como você pode serializar funções, logicamente você também pode
>> serializar dados.
>>
>> E o eval() é realizado dentro do contexto léxico corrente então é
>> possível referenciar variáveis externas (apesar de, em geral, isso ser
>> uma má prática).
>>
>> Mas realmente sem entender o que você quer fazer não dá pra ajudar
>> mais... até agora você não disse o que quer fazer, está descrevendo
>> *como* quer fazer isso.
>>
>> -Nilson Santos F. Jr.
>> _______________________________________________
>> Cascavel-pm mailing list
>> Cascavel-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>
>>
>
> --
> Thomas Storino Britis
> TCNet Informatica e Telecomunicacoes LTDA
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


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