<html>
<head>
<style>
P
{
margin:0px;
padding:0px
}
body
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body>
&gt; Date: Wed, 20 Jun 2007 17:12:40 -0300<br>&gt; From: edencardim@gmail.com<br><br>&gt; Não é tão simples quanto parece, você chegou a executar?<br>&gt; A ordem de execução do exemplo do flávio vai ser a seguinte:<br><br>Humm... não. Mas eu queria um exemplo de aplicação real para esse tipo de exercício...<br>&nbsp;<br>&gt; Acho que esse exemplo deixa mais claro o problema:<br>&gt; my $var = 1;<br>&gt; BEGIN {<br>&gt;     my $var = $var + 2<br>&gt;     print '$var do BEGIN: ' . $var;<br>&gt; }<br>&gt; print '$var: ' . $var;<br>&gt; <br>&gt; no final das contas a $var de dentro do BEGIN vai conter 2, e a de<br>&gt; fora vai conter 1. Se usar uma variável global, elas vão pisotear umas<br>&gt; nas outras e produzir resultados errados. E isso que pode ter vários<br>&gt; outros blocos aninhados indefinidamente dentro do BEGIN, todos com<br>&gt; suas $vars individuais.<br>&gt; Tá certo que não são muitos casos de programas que vão precisar fazer<br>&gt; isso, mesmo assim, tem que funcionar.<br><br>Entendi a aplicação e o "encavalamento". Mas foi por isso que eu pedi um exemplo real de aplicação da técnica.<br><br>Para seu exemplo, isso poderia ser feito facilmente usando usando "local" e mantendo o valor original. Eu sugeri o uso de uma variável global apenas se fosse necessário guardar o resultado calculado dentro do bloco BEGIN. Para o caso de apenas imprimir o valor, nem isso é necessário.<br><br>[]'s<br>Alceu<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>