entendi, no segundo exemplo se "tenta" imprimir a variável de um escopo em outro, então não daria certo, correto?<br><br>
<div><span class="gmail_quote">Em 28/04/08, <b class="gmail_sendername">Solli Honorio</b> <<a href="mailto:shonorio@gmail.com">shonorio@gmail.com</a>> escreveu:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Isto mesmo Samir, você pode escrever coisas assim :<br><br><span style="FONT-FAMILY: courier new,monospace"><code></span><br style="FONT-FAMILY: courier new,monospace">
<br style="FONT-FAMILY: courier new,monospace"><span style="FONT-FAMILY: courier new,monospace">for my $i (0..100) {</span><br style="FONT-FAMILY: courier new,monospace"><span style="FONT-FAMILY: courier new,monospace"> imprimir($i);</span><br style="FONT-FAMILY: courier new,monospace">
<span style="FONT-FAMILY: courier new,monospace">}</span><br style="FONT-FAMILY: courier new,monospace"><span style="FONT-FAMILY: courier new,monospace"><br>sub imprimir {<br> my $i = shift;<br> print "$i\n";<br>
}<br><br></code></span><br><br>Apesar das variáveis terem o mesmo nome, elas possuem endereço de memória distintas, por isto são variáveis diferentes. Mas tome cuidado com isto, pois o código abaixo não vai rodar exatamente como você acha, teste você mesmo.<br>
<br><span style="FONT-FAMILY: courier new,monospace"><code></span><br style="FONT-FAMILY: courier new,monospace"><br style="FONT-FAMILY: courier new,monospace"><span style="FONT-FAMILY: courier new,monospace">my $i = 0;<br>
for my $i (0..100) {</span><br style="FONT-FAMILY: courier new,monospace"><span style="FONT-FAMILY: courier new,monospace"> imprimir($i);</span><br style="FONT-FAMILY: courier new,monospace"><span style="FONT-FAMILY: courier new,monospace">}</span><br style="FONT-FAMILY: courier new,monospace">
<span style="FONT-FAMILY: courier new,monospace"><br>sub imprimir {<br> print "$i\n";<br>}<br><br></code></span><br><br>Outro detalhe importante são os closures, mas acho melhor você compreender bem a questão da variável local e global.<br>
<br>Abraços,<br><br>Solli M. Honório<br><br style="FONT-FAMILY: courier new,monospace">
<div class="gmail_quote">2008/4/28 Samir Cury <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:rimasy@gmail.com" target="_blank">rimasy@gmail.com</a>>:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<div><span class="e" id="q_119977db6f871712_1">Pessoal,<br><br>Vendo algumas palestras lá no ET pensei o seguinte:<br><br>foi falado muito de <br> <br>{<br><br> Escopo<br><br>} <br><br>então se eu "tranco" o meu loop dentro do escopo usando $i como índice, e declaro "$i" como "my $i", então ela será uma variável local dentro daquele escopo APENAS, ou seja, para o resto do programa (fora do escopo) ela nem existe, então eu posso em todos os loops usar a mesma variável.<br>
<br>Bom foi isso que eu deduzi, queria uma confirmação.<br><br>Valeu!<br><br></span></div>_______________________________________________<br>Rio-pm mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><span class="sg"><br><br clear="all">
<br>-- <br>"o animal satisfeito dorme". - Guimarães Rosa </span><br>_______________________________________________<br>Rio-pm mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br>