Olá<br><br>Estou fazendo um pequeno programa que aceita &quot;plugins&quot;. Na verdade plugins são pequenas funções perl adicionadas num modulo. As pessoas que escrevem esses plugins não são &quot;programadores&quot; perl. <br>
<br>O programa carrega o modulo <a href="http://plugins.pm">plugins.pm</a>&nbsp; e le as funções de si proprio e coloca disponivel para o usuario escolher (algo como um shell). <br><br>Exemplo:<br><br>O usuario insere no arquivo uma funçao bar:<br>
<br>sub bar {<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; print &quot;meu sonho é fazer um esquema de plugins decente!\n&quot;;<br>&nbsp; <br>}<br><br><br>Eu carrego o codigo do usuario lendo do meu namespace e carrego num dp.<br><br><br>&nbsp;&nbsp;&nbsp; no strict &#39;refs&#39;;<br>
&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; my ($nspc) = caller();<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; while (my ($name , $loss) = each %{ $nspc . &#39;::&#39;})<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; my $sym = $nspc . &#39;::&#39; . $name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $run = *{ $sym }{ &#39;CODE&#39; };<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $map{$name} = $run;<br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>}<br><br>Como eu sei que o Luis vai falar, eu estou ignorando até o momento o fato do usuario poder adicionar uma função que o corpo seja `rm -Rf $ENV{HOME}` . <br><br>
Isso me gera alguns efeitos colaterais, quando o usuario lista as funções aparecem os intrinsecos ::BEGIN, ::ISA ... <br><br>Tudo isso porque eu preciso que o usuario adicione suas funções no programa, sendo que eles tem QI abaixo de 80, então preciso deixar o mais facil possivel.<br>
<br>Alguem tem algum hot shot no cpan?<br><br>[]&#39;s<br><br>-- <br>____________________________<br>Frederico Recsky<br>Linux User: #253572<br><a href="http://www.fred.eti.br">http://www.fred.eti.br</a><br><a href="http://www.perl.org.br">http://www.perl.org.br</a>