[Cascavel-pm] Transformando em objeto

Leonardo Soares lsmsoares em gmail.com
Quinta Novembro 30 05:14:06 PST 2006


Estou desenvolvendo um programa para obtenção de dados e controle de
equipamentos para um laboratório de pesquisa de Física. Os equipamentos
estão interfaceados por GPIB e são entidades no Jabber. Através de uma sala
de bate papo no Jabber eu controlo tudo.

A questão é que alguns pesquisadores preferem usar alguns recursos, outros
não. para fazer um programa que se adaptasse a todos, fui obrigado a
transformar alguns recursos em objeto, como o gráfico em tempo real,  por
exemplo (optamos por fazer tudo em canvas/Tk para ter o controle total do
gráfico).

On 11/30/06, Lorn <lorn.br em gmail.com> wrote:
>
> 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
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
>


-- 
Meu Blog:
http://mundoaoleo.blogspot.com/
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20061130/c7e6d032/attachment-0001.html 


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