<html>
<head>
<style>
P
{
margin:0px;
padding:0px
}
body
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body>
<br>> Date: Wed, 20 Jun 2007 18:28:35 -0300<br>> From: fglock@gmail.com<br>><br>> Para executar uma sequência de comandos assim, você não consegue usar<br>> 'local' dentro das subrotinas.<br>> Porque o 'local' retorna ao valor anterior no fim do bloco.<br>> Isso quer dizer que, ao executar a próxima instrução, o valor de $x<br>> não existiria mais.<br>> <br>> Uma possibilidade seria fazer um eval() neste código:<br>> <br>> {<br>> local $My::x;<br>> atribui( '$x', 1 );<br>> # ...<br>> }<br>> <br>> mas isso não é possível, porque o programa precisa necessariamente ser<br>> lido e executado passo-a-passo.<br>> Quer dizer, você só sabe o próximo comando depois que já executou o anterior.<br>> Não pode usar { } porque você precisaria colocar todos os comandos<br>> dentro, mas você ainda não sabe os comandos.<br>> <br>> 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>