[Rio-pm] [DUVIDA] Chamar função sem declarar construtor

Renato Santos renato.cron em gmail.com
Terça Abril 29 16:11:08 PDT 2014


** FLAME WARRRRRR***
C++ e Delphi ?

linus torvalds discorda disso!

http://article.gmane.org/gmane.comp.version-control.git/57918




2014-04-29 20:02 GMT-03:00 Aureliano Guedes <guedes_1000 em hotmail.com>:

>  >ter Perl como primeira linguagem
> Esse foi meu feliz erro.
> Sofro com alguns problemas de boas praticas mas em questão de logica pura
> eu m dou bem.
> Eu diria que quem quer aprender logica deveria aprender Perl.
> Agora aprendi C VB.net e mais recentemente C++ e Delphi pra tentar
> aprender boas praticas.
>
>
>
> Blabos de Blebe <blabos em gmail.com> escreveu:
>
>  Mas ok, não é uma boa prática...
>
>
> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe <blabos em gmail.com>:
>
> > café deve ser 'duro'
>
>  TimToady!!!
>
>
> 2014-04-29 19:12 GMT-03:00 Renato Santos <renato.cron em gmail.com>:
>
>  Cara, café não se pode ferver! seu café deve ser 'duro'
>
>
> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe <blabos em gmail.com>:
>
>  Enquanto meu café ferve, aqui vale uma reflexão:
>
>  "Boas práticas" é um conceito flutuante.
>
>  Perl é uma linguagem extremamente rica e se desenvolvimento bastante
> dinâmico. O que era boa prática quando eu aprendi, já não é boa prática
> hoje. As coisas mudam.
>
>  http://perldoc.perl.org/perlhist.html
>
>  Embora muita gente fale que Perl é pré-histórico, a versão mais atual
> foi lançada em janeiro. Se você bobear, você que fica pré-histórico.
>
>  []'s
>
>
>
>
> 2014-04-29 18:52 GMT-03:00 Blabos de Blebe <blabos em gmail.com>:
>
>  Pacman, copião :)
>
>
> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe <blabos em gmail.com>:
>
>  > que Modulo::funcao dispensa declarar o construtor.
>
>  Não dispensa. Não tem nada a ver. Não misture as coisas.
>
>  Construtor é um conceito associado a um método especial utilizado para
> inicializar objetos, ou seja, quando você está utilizando uma interface
> orientada a objetos.
>
>  Em C++, o Construtor tem que ser um método cujo nome é o nome da classe.
>
>  Em Python é outro padrão.
>
>  Em Perl isso é livre, um construtor, ou seja um inicializador de objetos
> pode ser qualquer método que eventualmente invoque a sub bless().
>
>  http://perldoc.perl.org/functions/bless.html
>
>  Em Perl convencionamos, pra ninguém ficar louco, que o construtor
> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso.
>
>  Modulo::funcao() é uma chamada 'procedural' aplicando o namespace
> completo FQN. Não tem nada a ver com objetos, ou construtores.
>
>  ***
>
>  No seu caso, como bem observado pelo Junior, o que você quer é não ter
> que passar o namespace completo, por isso o uso do Exporter, que nada mais
> faz do que tornar a sua função conhecida no namespace atual.
>
>  Exporter também não tem nada a ver com objetos.
>
>  A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por
> default. Nesse caso, ao usar o seu módulo você precisa fazer:
>
>  use Modulo qw{ funcao };
>
>  Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de
> exportar apenas o necessário pra não correr risco de dar conflito com outra
> função de mesmo nome de outro módulo".
>
>  Mas é só uma politica de boa vizinhança, não quer dizer,
> necessariamente, errado. Depende do seu contexto.
>
>  ***
>
>  Como em Perl as coisas são mais livres, você vai ver casos de um package
> que tem construtor, métodos *E* funções comuns, ou seja, tanto uma
> interface OO quanto procedural. Exemplo:
> https://metacpan.org/pod/String::Trigram
>
>  Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma
> interface OO *E* uma interface procedural, pra ficar ao gosto do cliente
> escolher. Outro exemplo: https://metacpan.org/pod/CGI
>
>  Por essas e outras, *EU*, acho meio confuso ter Perl como primeira
> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos
> bem sedimentados, *pode* confundir.
>
>  O importante é, em estar estudando, não parar no estágio "ah consegui
> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona".
>
>  []'s
>
>
>
>
> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes <guedes_1000 em hotmail.com>:
>
>  Funcionou da forma que o Junior passou.
>
>  Obrigado.
>
>  Experimentei fazer o dumper como o Bablos falou. Realmente são formas
> diferentes, sendo que Modulo::funcao dispensa declarar o construtor.
>
>  ------------------------------
> From: juniiior182 em gmail.com
> Date: Tue, 29 Apr 2014 18:15:00 -0300
>
> To: rio-pm em pm.org
> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
>
>    Hi.
>
> Em 29 de abril de 2014 18:07, Blabos de Blebe <blabos em gmail.com> escreveu:
>
> Só mais uma coisa,
>
>  Isso não tem nada a ver com Exporter.
>
>  []'s
>
>
> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la
> possível ser chamada à partir de outro script bastando dar um use no
> módulo, e não como invocar um método estaticamente como eu pensei.
>
> Creio que o jeito mais roots seria:
>
>
>
>
>
>
>
>
> *package Modulo::Modulo; use vars qw(@ISA @EXPORT); @ISA    =
> (qw(Exporter)); @EXPORT = qw(acp); sub acp {*
>
> *... *
> *}*
> 1;
>
>  Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a função
> acp() estará acessível, assim como no Math::Prime::Util.
>
>  []'s
>
>   _______________________________________________
>
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
> _______________________________________________ Rio-pm mailing list
> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
>
>  --
> Saravá,
> Renato CRON
>  http://www.renatocron.com/blog/
>  @renato_cron <http://twitter.com/#!/renato_cron>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron <http://twitter.com/#!/renato_cron>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20140429/98d284df/attachment.html>


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