<html>
<head>
<style>
P
{
margin:0px;
padding:0px
}
body
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body>
<br>&gt; Date: Wed, 20 Jun 2007 18:28:35 -0300<br>&gt; From: fglock@gmail.com<br>&gt;<br>&gt; Para executar uma sequência de comandos assim, você não consegue usar<br>&gt; 'local' dentro das subrotinas.<br>&gt; Porque o 'local' retorna ao valor anterior no fim do bloco.<br>&gt; Isso quer dizer que, ao executar a próxima instrução, o valor de $x<br>&gt; não existiria mais.<br>&gt; <br>&gt; Uma possibilidade seria fazer um eval() neste código:<br>&gt; <br>&gt;   {<br>&gt;   local $My::x;<br>&gt;   atribui( '$x', 1 );<br>&gt;   # ...<br>&gt;   }<br>&gt; <br>&gt; mas isso não é possível, porque o programa precisa necessariamente ser<br>&gt; lido e executado passo-a-passo.<br>&gt; Quer dizer, você só sabe o próximo comando depois que já executou o anterior.<br>&gt; Não pode usar { } porque você precisaria colocar todos os comandos<br>&gt; dentro, mas você ainda não sabe os comandos.<br>&gt; <br>&gt; certo?<br><br>Eu imagino que sim... mas exatamente o que você está tentando fazer?<br>Estou meio confuso... até aonde entendo seria possível manipular a tabela de símbolos e inserir uma variável "global" ou gerar uma função que retorne o valor desejado... isso não atende a sua necessidade?<br><br>[]'s<br>Alceu<br><br><br /><hr />Change is good. See what's different about Windows Live Hotmail. <a href='http://www.windowslive-hotmail.com/learnmore/default.html?locale=en-us&ocid=RMT_TAGLM_HMWL_reten_changegood_0607' target='_new'>Check it out!</a></body>
</html>