Qual a vantagem de eu tranformar um programa em perl normal em objeto?<br>alem dele ficar "abençoado" :P<br><br><br><div><span class="gmail_quote">On 11/30/06, <b class="gmail_sendername">Adriano Ferreira</b> <
<a href="mailto:a.r.ferreira@gmail.com">a.r.ferreira@gmail.com</a>> 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 <
<a href="mailto:lsmsoares@gmail.com">lsmsoares@gmail.com</a>> wrote:<br>> Prezados Senhores,<br>><br>><br>> Sou novato em Perl (2 meses) e estou trasnformando em objeto um programa.<br>><br>> Eu me deparei com o seguinte problema: Transformar a seguinte linha de
<br>> código<br>><br>> $num_dados = $#datax;<br>><br>> Em algo do tipo:<br>><br>> $self->{num_dados} = ???????;<br><br>$self->{num_dados} = $#datax; # ?!?!<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->{num_dados} = scalar @{$self->{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> scalar @a - 1<br><br>ao invés de<br><br> $#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 -> epa! isto é $[ + scalar @a - 1<br> -> porque a mal comportada variável $[
<br> -> 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 -> continua o mesmo
<br><br>><br>> Como fica ?????<br>><br>><br>> Saudações,<br>><br>> Leo.<br>><br>> --<br>> Meu Blog:<br>> <a href="http://mundoaoleo.blogspot.com/">http://mundoaoleo.blogspot.com/</a><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>
><br>><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>