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.
<br><br>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).
<br><br><div><span class="gmail_quote">On 11/30/06, <b class="gmail_sendername">Lorn</b> <<a href="mailto:lorn.br@gmail.com">lorn.br@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;">
Qual a vantagem de eu tranformar um programa em perl normal em objeto?<br>alem dele ficar "abençoado" :P<div><span class="e" id="q_10f38f4a75af603a_1"><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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">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/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://mundoaoleo.blogspot.com/</a><br>> _______________________________________________
<br>> Cascavel-pm mailing list<br>> <a href="mailto:Cascavel-pm@pm.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Cascavel-pm@pm.org</a><br>> <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Cascavel-pm@pm.org
</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://mail.pm.org/mailman/listinfo/cascavel-pm
</a><br></blockquote></div><br><br clear="all"><br></span></div><span class="sg">-- <br>Lorn <br>- Slackware Linux<br><a href="http://www.slackwarezine.com.br" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
www.slackwarezine.com.br</a><br>- <a href="http://lornlab.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://lornlab.org</a>
</span><br>_______________________________________________<br>Cascavel-pm mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br><br></blockquote></div><br><br clear="all"><br>-- <br>Meu Blog:<br><a href="http://mundoaoleo.blogspot.com/">http://mundoaoleo.blogspot.com/</a>