[SP-pm] Dynamic Unload

Alceu R. de Freitas Jr. glasswalk3r at yahoo.com.br
Fri Jul 26 05:25:33 PDT 2013


> De: Blabos de Blebe <blabos at gmail.com>
>Para: Perl Mongers São Paulo <saopaulo-pm at mail.pm.org> 
>Enviadas: Sexta-feira, 26 de Julho de 2013 9:10
>Assunto: [SP-pm] Dynamic Unload
>
>Pesquisando um pouco mais eu encontrei os seguinte código:
>
>
>sub unload {
>    my $module = shift;
>    my $filename = to_filename( $module );
>    delete $INC{ $filename };
>}
>
>
>Esse código faz com que a cada passo do loop o módulo 'Foo::Bar' seja carregado, e as alterações no seu fonte sejam visíveis na aplicação, atingindo o meu objetivo.
>
>
>Entretanto, essa solução está me cheirando a gambiarra. Eu estou preocupado com memory leaks e coisas do gênero, pois pretendo utilizar esse "reload" em uma aplicação que teoricamente rodaria indefinidamente.
>
>
>Vocês poderiam apontar outros módulos que lidam com esse problema de forma segura, ou documentação mais específica onde eu possa entender melhor o processo?
>
>
>Mais do que uma solução para o meu cenário, eu estou procurando entender melhor o processo.


Blabos,

Pesquise sobre symbol table manipulation, é exatamente o que você quer fazer. Eu lembro que a O'Reilly tinha um artigo interessante como introdução ao assunto.

No entanto, a sintaxe é confusa e é fácil errar no meio do caminho. Eu lembro que na época tentei fazer algo parecido com o que o Moose faz com Roles e métodos (para tornar a implementação deles obrigatórios). Funcionou, mas não era muito bonito de se ver.

[]'s

Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r at yahoo.com.br
---
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1


More information about the SaoPaulo-pm mailing list