<html>
<head>
<style>
P
{
margin:0px;
padding:0px
}
body
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body>
> Date: Wed, 20 Jun 2007 17:12:40 -0300<br>> From: edencardim@gmail.com<br><br>> Não é tão simples quanto parece, você chegou a executar?<br>> 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> <br>> Acho que esse exemplo deixa mais claro o problema:<br>> my $var = 1;<br>> BEGIN {<br>> my $var = $var + 2<br>> print '$var do BEGIN: ' . $var;<br>> }<br>> print '$var: ' . $var;<br>> <br>> no final das contas a $var de dentro do BEGIN vai conter 2, e a de<br>> fora vai conter 1. Se usar uma variável global, elas vão pisotear umas<br>> nas outras e produzir resultados errados. E isso que pode ter vários<br>> outros blocos aninhados indefinidamente dentro do BEGIN, todos com<br>> suas $vars individuais.<br>> Tá certo que não são muitos casos de programas que vão precisar fazer<br>> 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>