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:<div><span class="gmail_quote"></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, Lorn &lt;<a href="mailto:lorn.br@gmail.com">lorn.br@gmail.com</a>&gt; wrote:<br>&gt; Quando você usa módulos no seu programa, significa que você está usando OO??<br><br>Não. O primeiro propósito dos módulos é ter um 'namespace' separado
<br>onde você pode colocar as subrotinas principais, variáveis, etc. de<br>seu código e escolher seletivamente o que você expõem para os usuários<br>do módulo (através de métodos que podem ser exportados ou objetos).<br><br>
&gt; Eu sempre tive essa duvida, por causa daquele 'package...' lá em cima :)<br>&gt; E também porque você acessa &quot;metodos&quot; do modulo, e sempre que eu ouço falar<br>&gt; em metodos eu lembro de OO.<br><br>Em Perl, subrotinas são métodos quando você usa elas do tipo
<br><br>&nbsp;&nbsp;&nbsp;&nbsp; File::Spec-&gt;catfile(@parts)<br><br>ou<br><br>&nbsp;&nbsp;&nbsp;&nbsp; $mech-&gt;get($url)<br><br>É OO mesmo neste caso.</blockquote><div><br>Foi o que eu pensei, eu tenho a mente meio perturbada com OO por causa do Java, no Perl é muito melhor, vou seguir a sua dica, e a do Randal em aprender Smalltalk só pra aprender/entender melhor os conceitos de orientação a objeto.
<br>Obrigado pelo esclarecimento Adriano.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt; Agora programar em OO só pra quem gosta mesmo, ou se você usa um Framework
<br>&gt; que facilita isso, tipo Catalyst.<br><br>Como eu disse, OO pode ser a escolha certa às vezes. Muitos módulos<br>famosos do CPAN são OO (DBI, WWW::Mechanize, etc.), outros não (como<br>ExtUtils::MakeMaker, Test::More, etc.), e outros tem interfaces que
<br>suportam OO e API funcional (como XML::Simple, YAML, etc., etc.)<br><br>Eles não são úteis só há nível de frameworks completos como o Catalyst.<br><br>&gt; /me tem trauma de OO por causa do Java &gt;.&lt;<br><br>Todos que foram apresentados a OO da forma errada tem trauma. Faz
<br>pouco tempo o Randal disse &quot;Você não conhece objetos se não conhece<br>Smalltalk&quot;. (<a href="http://use.perl.org/~merlyn/journal/31081">http://use.perl.org/~merlyn/journal/31081</a>)<br><br><br>&gt; On 11/30/06, Adriano Ferreira &lt;
<a href="mailto:a.r.ferreira@gmail.com">a.r.ferreira@gmail.com</a>&gt; wrote:<br>&gt; &gt;<br>&gt; &gt; On 11/30/06, Lorn &lt;<a href="mailto:lorn.br@gmail.com">lorn.br@gmail.com</a>&gt; wrote:<br>&gt; &gt; &gt; Qual a vantagem de eu tranformar um programa em perl normal em objeto?
<br>&gt; &gt; &gt; alem dele ficar &quot;abençoado&quot; :P<br>&gt; &gt;<br>&gt; &gt; Se o programa tem partes reutilizáveis, vale apenas trabalhá-lo em<br>&gt; &gt; módulos (que já ajudam) e se a complexidade aumenta, objetos podem ser
<br>&gt; &gt; interessantes (embora não haja regra geral -- tem de ser visto caso a<br>&gt; &gt; caso e, como sempre, depende. Depende de mil e um fatores -- passando<br>&gt; &gt; desde a utilização do código até a proficiência/paciência do
<br>&gt; &gt; programador).<br>&gt; &gt;<br>&gt; &gt; Se é um código para ser usado uma única vez, não vale a pena complicar<br>&gt; &gt; -- você pode demorar mais projetando o objeto do que resolvendo o<br>&gt; &gt; problema em mãos. Se é um código com o qual você e outros terão de
<br>&gt; &gt; conviver por muito tempo e que provavelmente vai mudar e evoluir, você<br>&gt; &gt; vai apreciar ter feito dele na forma de objetos.<br>&gt; &gt;<br>&gt; &gt; Se você é supersticioso, abençoar seu código (o equivalente Perl de
<br>&gt; &gt; trabalhar com objetos) deve ser sempre um bom negócio. Mas superstição<br>&gt; &gt; não há de funcionar sempre em casos de programação.<br>&gt; &gt; _______________________________________________<br>&gt; &gt; Cascavel-pm mailing list
<br>&gt; &gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; &gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>&gt; &gt;<br>&gt;<br>&gt;
<br>&gt;<br>&gt; --<br>&gt; Lorn<br>&gt; - Slackware Linux<br>&gt; <a href="http://www.slackwarezine.com.br">www.slackwarezine.com.br</a><br>&gt; - <a href="http://lornlab.org">http://lornlab.org</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>