Qual a vantagem de eu tranformar um programa em perl normal em objeto?<br>alem dele ficar &quot;abençoado&quot; :P<br><br><br><div><span class="gmail_quote">On 11/30/06, <b class="gmail_sendername">Adriano Ferreira</b> &lt;
<a href="mailto:a.r.ferreira@gmail.com">a.r.ferreira@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On 11/30/06, Leonardo Soares &lt;
<a href="mailto:lsmsoares@gmail.com">lsmsoares@gmail.com</a>&gt; wrote:<br>&gt; Prezados Senhores,<br>&gt;<br>&gt;<br>&gt; Sou novato em Perl (2 meses) e estou trasnformando em objeto um programa.<br>&gt;<br>&gt; Eu me deparei com o seguinte problema: Transformar a seguinte linha de
<br>&gt; código<br>&gt;<br>&gt;&nbsp;&nbsp;$num_dados = $#datax;<br>&gt;<br>&gt; Em algo do tipo:<br>&gt;<br>&gt;&nbsp;&nbsp;$self-&gt;{num_dados} = ???????;<br><br>$self-&gt;{num_dados} = $#datax;&nbsp;&nbsp;#&nbsp;&nbsp;?!?!<br><br>Esta seria a resposta se, no seu projeto, você estivesse transformando
<br>a variável $num_dados em um atributo do objeto (representado como um<br>hash abençoado), e tivesse os mesmos dados no mesmo array @datax. No<br>entanto se @datax também é para ser transformado em um atributo do<br>objeto, ele tem de ser transformado em referência (porque apenas
<br>referências são guardadas em um hash) e você poderia usar algo como<br><br>$self-&gt;{num_dados} = scalar @{$self-&gt;{datax}} - 1;<br><br>Ah, e de qualquer jeito, a prudência e a canja de galinha recomendam<br>que você use para determinar o tamanho de um array - 1 a expressão
<br><br>&nbsp;&nbsp;&nbsp;&nbsp; scalar @a - 1<br><br>ao invés de<br><br>&nbsp;&nbsp;&nbsp;&nbsp; $#a<br><br>porque alguém (ou algum pedaço de código) malvado pode mexer com $[ e<br>lhe trazer resultados inesperados. Leia sobre isto em 'perldoc<br>perlvar'.<br>
<br>Exemplos:<br><br>$ perl -e '@a = (1,2); print $#a'<br>1<br><br>$ perl -e '@a = (1,2); $[ = 1; print $#a'<br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt; epa! isto é&nbsp;&nbsp;&nbsp;&nbsp; $[ + scalar @a - 1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; porque a mal comportada variável $[
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; permite mudar o primeiro índice de<br>todos arrays<br><br>$ perl -e '@a = (1,2); print scalar @a - 1'<br>1<br><br>$ perl -e '@a = (1,2); $[ = 1; print scalar @a - 1'<br>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; continua o mesmo
<br><br>&gt;<br>&gt; Como fica ?????<br>&gt;<br>&gt;<br>&gt; Saudações,<br>&gt;<br>&gt; Leo.<br>&gt;<br>&gt; --<br>&gt; Meu Blog:<br>&gt;&nbsp;&nbsp;<a href="http://mundoaoleo.blogspot.com/">http://mundoaoleo.blogspot.com/</a><br>&gt; _______________________________________________
<br>&gt; Cascavel-pm mailing list<br>&gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
&gt;<br>&gt;<br>_______________________________________________<br>Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm
</a><br></blockquote></div><br><br clear="all"><br>-- <br>Lorn <br>- Slackware Linux<br><a href="http://www.slackwarezine.com.br">www.slackwarezine.com.br</a><br>- <a href="http://lornlab.org">http://lornlab.org</a>