[Cascavel-pm] Transformando em objeto

Lorn lorn.br em gmail.com
Quinta Novembro 30 05:00:45 PST 2006


Qual a vantagem de eu tranformar um programa em perl normal em objeto?
alem dele ficar "abençoado" :P


On 11/30/06, Adriano Ferreira <a.r.ferreira em gmail.com> wrote:
>
> On 11/30/06, Leonardo Soares <lsmsoares em gmail.com> wrote:
> > Prezados Senhores,
> >
> >
> > Sou novato em Perl (2 meses) e estou trasnformando em objeto um
> programa.
> >
> > Eu me deparei com o seguinte problema: Transformar a seguinte linha de
> > código
> >
> >  $num_dados = $#datax;
> >
> > Em algo do tipo:
> >
> >  $self->{num_dados} = ???????;
>
> $self->{num_dados} = $#datax;  #  ?!?!
>
> Esta seria a resposta se, no seu projeto, você estivesse transformando
> a variável $num_dados em um atributo do objeto (representado como um
> hash abençoado), e tivesse os mesmos dados no mesmo array @datax. No
> entanto se @datax também é para ser transformado em um atributo do
> objeto, ele tem de ser transformado em referência (porque apenas
> referências são guardadas em um hash) e você poderia usar algo como
>
> $self->{num_dados} = scalar @{$self->{datax}} - 1;
>
> Ah, e de qualquer jeito, a prudência e a canja de galinha recomendam
> que você use para determinar o tamanho de um array - 1 a expressão
>
>      scalar @a - 1
>
> ao invés de
>
>      $#a
>
> porque alguém (ou algum pedaço de código) malvado pode mexer com $[ e
> lhe trazer resultados inesperados. Leia sobre isto em 'perldoc
> perlvar'.
>
> Exemplos:
>
> $ perl -e '@a = (1,2); print $#a'
> 1
>
> $ perl -e '@a = (1,2); $[ = 1; print $#a'
> 2                              -> epa! isto é     $[ + scalar @a - 1
>                                -> porque a mal comportada variável $[
>                                -> permite mudar o primeiro índice de
> todos arrays
>
> $ perl -e '@a = (1,2); print scalar @a - 1'
> 1
>
> $ perl -e '@a = (1,2); $[ = 1; print scalar @a - 1'
> 1                               -> continua o mesmo
>
> >
> > Como fica ?????
> >
> >
> > Saudações,
> >
> > Leo.
> >
> > --
> > Meu Blog:
> >  http://mundoaoleo.blogspot.com/
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> >
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Lorn
- Slackware Linux
www.slackwarezine.com.br
- http://lornlab.org
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20061130/121ddc1f/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm