Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
2014-04-29 19:15 GMT-03:00 Blabos de Blebe : >> café deve ser 'duro' > > TimToady!!! > TimToddy!! \o/ ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
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 : >>> >>> 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: juniiior...@gmail.com >>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>> >>> To: rio-pm@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 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@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> ___ Rio-pm mailing list >>> Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> ___ >>> Rio-pm mailing list >>> Rio-pm@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> >>> ___ >>> Rio-pm mailing list >>> Rio-pm@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@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> ___ >>> Rio-pm mailing list >>> Rio-pm@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@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > ___ > Rio-pm mailing list > Rio-pm@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@pm.org http://mail.pm.org/mailman/listinfo/rio-pm___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
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 : >>> >>> 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: juniiior...@gmail.com >>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>> >>> To: rio-pm@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 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@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> ___ Rio-pm mailing list >>> Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> ___ >>> Rio-pm mailing list >>> Rio-pm@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> >>> ___ >>> Rio-pm mailing list >>> Rio-pm@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@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> ___ >>> Rio-pm mailing list >>> Rio-pm@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@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > ___ > Rio-pm mailing list > Rio-pm@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@pm.org http://mail.pm.org/mailman/listinfo/rio-pm___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
http://i.imgur.com/8iUZEZt.png só pela zuera! 2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra : > Boas praticas com Delphi é ruim heim hahaha > > > *Daniel Vinciguerra (@dvinciguerra)* > Web solution architect, perl dev, vegetarian, geek and founder at *Bivee* > bivee.com.br - github.com/Bivee > > > 2014-04-29 20:11 GMT-03:00 Renato Santos : > > ** FLAME WARR*** >> 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 : >> >> >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 escreveu: >>> >>> Mas ok, não é uma boa prática... >>> >>> >>> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : >>> >>> > café deve ser 'duro' >>> >>> TimToady!!! >>> >>> >>> 2014-04-29 19:12 GMT-03:00 Renato Santos : >>> >>> Cara, café não se pode ferver! seu café deve ser 'duro' >>> >>> >>> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >>> >>> 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 : >>> >>> Pacman, copião :) >>> >>> >>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>> >>> > 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 >
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Boas praticas com Delphi é ruim heim hahaha *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and founder at *Bivee* bivee.com.br - github.com/Bivee 2014-04-29 20:11 GMT-03:00 Renato Santos : > ** FLAME WARR*** > 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 : > > >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 escreveu: >> >> Mas ok, não é uma boa prática... >> >> >> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : >> >> > café deve ser 'duro' >> >> TimToady!!! >> >> >> 2014-04-29 19:12 GMT-03:00 Renato Santos : >> >> Cara, café não se pode ferver! seu café deve ser 'duro' >> >> >> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >> >> 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 : >> >> Pacman, copião :) >> >> >> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >> >> > 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 &qu
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Eu sei. Mas fui fazer um programa pra minha empresa em perl, ai minha esposa diz quero interface e pra windows, ai eu usei TK, ai ela disse quero algo bunitinho, ai aprendi delphi, ai começo da bug pra tudo que e lado, ai usei VB.net, ai fico pior, ai disse:"vamos comprar um pronto". E viveram infelizes para sempre. Renato Santos escreveu: ** FLAME WARR*** 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 : > >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 escreveu: > > Mas ok, não é uma boa prática... > > > 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : > > > café deve ser 'duro' > > TimToady!!! > > > 2014-04-29 19:12 GMT-03:00 Renato Santos : > > Cara, café não se pode ferver! seu café deve ser 'duro' > > > 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : > > 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 : > > Pacman, copião :) > > > 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : > > > 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 : > > 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. > > ---
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
** FLAME WARR*** 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 : > >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 escreveu: > > Mas ok, não é uma boa prática... > > > 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : > > > café deve ser 'duro' > > TimToady!!! > > > 2014-04-29 19:12 GMT-03:00 Renato Santos : > > Cara, café não se pode ferver! seu café deve ser 'duro' > > > 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : > > 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 : > > Pacman, copião :) > > > 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : > > > 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 : > > 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: juniiior...@gmail.com > Date: Tue, 29 Apr 2014 18:15:00 -0300 > > To: rio-pm@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 escreveu: > > Só mais uma coisa, > > Isso não tem nada a ver com Exporter.
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Hi. Em 29 de abril de 2014 18:35, Blabos de Blebe escreveu: > > > Junior, a forma que você sugeriu é um dialeto mais antigo. Hoje em dia (e > desde a época do Perl Best Practices, pg 407), o recomendado é herdar do > módulo Exporter, e utilizar o @EXPORT_OK ao invés do @EXPORT diretamente. > Yep, eu estava ciente! Por isso me referi ao *use vars* como a maneira mais 'roots'. Era a única que eu sabia que não daria problema de compatibilidade com nenhuma versão do Perl. :P []'s ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
>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 escreveu: Mas ok, não é uma boa prática... 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : > > café deve ser 'duro' > > TimToady!!! > > > 2014-04-29 19:12 GMT-03:00 Renato Santos : > > Cara, café não se pode ferver! seu café deve ser 'duro' >> >> >> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >> >> 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 : >>> >>> Pacman, copião :) >>>> >>>> >>>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>>> >>>> > 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 >>>&
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Mas ok, não é uma boa prática... 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : > > café deve ser 'duro' > > TimToady!!! > > > 2014-04-29 19:12 GMT-03:00 Renato Santos : > > Cara, café não se pode ferver! seu café deve ser 'duro' >> >> >> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >> >> 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 : >>> >>> Pacman, copião :) >>>> >>>> >>>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>>> >>>> > 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 >>>>> >>>>> >>
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
> café deve ser 'duro' TimToady!!! 2014-04-29 19:12 GMT-03:00 Renato Santos : > Cara, café não se pode ferver! seu café deve ser 'duro' > > > 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : > > 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 : >> >> Pacman, copião :) >>> >>> >>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>> >>> > 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 : >>>> >>>> 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. >>>>> >>>>>
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Cara, café não se pode ferver! seu café deve ser 'duro' 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : > 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 : > > Pacman, copião :) >> >> >> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >> >> > 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 : >>> >>> 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: juniiior...@gmail.com >>>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>>> >>>> To: rio-pm@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 escreveu: >>>> >>>> Só mais uma coisa, >>>> >>>> Isso não tem nada a ver com Exporter. >>>> >>>> []'s >>>&
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
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 : > Pacman, copião :) > > > 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : > > > 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 : >> >> 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: juniiior...@gmail.com >>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>> >>> To: rio-pm@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 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@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> ___ Rio-pm mailing list >>> Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> ___ >>> Rio-pm mailing list >>> Rio-pm@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> > ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Pacman, copião :) 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : > > 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 : > > 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: juniiior...@gmail.com >> Date: Tue, 29 Apr 2014 18:15:00 -0300 >> >> To: rio-pm@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 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@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> ___ Rio-pm mailing list >> Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> ___ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
> 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 : > 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: juniiior...@gmail.com > Date: Tue, 29 Apr 2014 18:15:00 -0300 > > To: rio-pm@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 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@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > ___ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
não é 'dispensa declarar o construtor'. não tem nada haver uma coisa com a outra. Modulo::função, vc esta acessando uma função no 'namespace' ou 'package' Modulo Modulo->funcao vc esta acessando usando um syntax sugar pra emular um 'metodo estático', passando o nome do modulo, por exemplo. $objeto->função vc esta invocando um metodo em uma referencia abençoada ( e a função pode nem existir ). vc pode ter um Modulo::funcao que atue como um construtor! 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : > 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: juniiior...@gmail.com > Date: Tue, 29 Apr 2014 18:15:00 -0300 > > To: rio-pm@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 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@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > ___ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Opa, Junior, a forma que você sugeriu é um dialeto mais antigo. Hoje em dia (e desde a época do Perl Best Practices, pg 407), o recomendado é herdar do módulo Exporter, e utilizar o @EXPORT_OK ao invés do @EXPORT diretamente. Eu vou ficar devendo todas as referências mas vou deixar a do MPB: http://modernperlbooks.com/books/modern_perl_2014/09-managing-perl-programs.html O mais atual seria algo como: package Foo; use base 'Exporter'; ## Ou use parent, dependendo da versão do Perl our @EXPORT_OK = qw{ func1 func2 }; sub func1 {} ... 1; []'s 2014-04-29 18:15 GMT-03:00 Junior Moraes : > Hi. > > Em 29 de abril de 2014 18:07, Blabos de Blebe 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@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
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: juniiior...@gmail.com Date: Tue, 29 Apr 2014 18:15:00 -0300 To: rio-pm@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 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@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Hi. Em 29 de abril de 2014 18:07, Blabos de Blebe 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@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Só mais uma coisa, Isso não tem nada a ver com Exporter. []'s 2014-04-29 18:06 GMT-03:00 Blabos de Blebe : > Opa, > > A expressão: > > Modulo::funcao( arg1, arg2 ); > > Significa: > > Invoque a função 'funcao' do módulo 'Modulo', passando como argumentos > 'arg1', 'arg1' *E* especificando o namespace completo. > > Dentro da sub 'funcao' se você fizer algo como: > > sub funcao { > use Data::Dumper; > warn Dumper \@_ > } > > Vai ver que só existem dois argumentos, 'arg1' e 'arg2', respectivamente. > > O que é ligeiramente diferente de: > > Modulo->funcao(arg1, arg2); > > Isso significa, invoque a função 'funcao' do módulo 'Modulo', passando > 'arg1' e 'arg2', *MAS*, passe *implicitamente* o nome da "classe" (no caso > 'Modulo') como primeiro argumento. > > Assim, se você observar o resultado do Dumper, no mesmo código vai ver que > agora há *TRÊS* argumentos, e não dois. > > É por isso que existem documentações antigas, onde a invocação do > 'construtor' (que convencionamos se chamar new()) pode ser feita assim: > > my $obj = new Modulo; > > Vejam, portanto, que são equivalentes sintaticamente: > > my $obj = new Modulo; > my $obj = Modulo->new; > > Exemplo do caso do Aureliano: > > https://metacpan.org/pod/File::Spec > > Exemplo de documentação com a forma menos idiomática: > > https://metacpan.org/pod/String::Trigram > > []'s > > > > > 2014-04-29 17:43 GMT-03:00 Tiago Peczenyj : > > isto é uma subrotina exportada >> >> onde vc viu >> >> my $p; >> >> $p->algumacoisa; >> >> ? >> >> >> 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : >> >> #!/usr/bin/perl >>> >>> use strict; >>> use warnings; >>> use Math::Prime::Util ':all'; >>> >>> print "ok" if (is_prime($ARGV[0])); >>> >>> -- >>> From: tiago.pecze...@gmail.com >>> Date: Tue, 29 Apr 2014 17:36:23 -0300 >>> To: rio-pm@pm.org >>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>> >>> >>> de exemplos. >>> >>> >>> >>> >>> 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : >>> >>> Ola monges, >>> >>> Tenho uma pequena dúvida. >>> Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria >>> das vezes o seguinte: >>> >>> use Modulo::Modulo; >>> >>> my $p = Modulo::Modulo->new(); >>> $p->funcao(); >>> >>> >>> isso porque no modulo tem um contrutor ou foi gerado de presente ao >>> autor quando usado o Moose ou semelhante. >>> >>> A questão é que alguns poucos módulos permitem que seja feito diretamente >>> >>> use Modulo::Modulo; >>> >>> my $p; >>> $p->funcao(); >>> >>> >>> A dúvida é: como o autor do módulo faz para que permita fazer a chamada >>> das funções sem precisar disso: >>> my $p = Modulo::Modulo->new(); >>> >>> ___ >>> Rio-pm mailing list >>> Rio-pm@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> -- >>> Tiago B. Peczenyj >>> Linux User #405772 >>> >>> http://about.me/peczenyj >>> >>> ___ Rio-pm mailing list >>> Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> ___ >>> Rio-pm mailing list >>> Rio-pm@pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> >> >> -- >> Tiago B. Peczenyj >> Linux User #405772 >> >> http://about.me/peczenyj >> >> ___ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Opa, A expressão: Modulo::funcao( arg1, arg2 ); Significa: Invoque a função 'funcao' do módulo 'Modulo', passando como argumentos 'arg1', 'arg1' *E* especificando o namespace completo. Dentro da sub 'funcao' se você fizer algo como: sub funcao { use Data::Dumper; warn Dumper \@_ } Vai ver que só existem dois argumentos, 'arg1' e 'arg2', respectivamente. O que é ligeiramente diferente de: Modulo->funcao(arg1, arg2); Isso significa, invoque a função 'funcao' do módulo 'Modulo', passando 'arg1' e 'arg2', *MAS*, passe *implicitamente* o nome da "classe" (no caso 'Modulo') como primeiro argumento. Assim, se você observar o resultado do Dumper, no mesmo código vai ver que agora há *TRÊS* argumentos, e não dois. É por isso que existem documentações antigas, onde a invocação do 'construtor' (que convencionamos se chamar new()) pode ser feita assim: my $obj = new Modulo; Vejam, portanto, que são equivalentes sintaticamente: my $obj = new Modulo; my $obj = Modulo->new; Exemplo do caso do Aureliano: https://metacpan.org/pod/File::Spec Exemplo de documentação com a forma menos idiomática: https://metacpan.org/pod/String::Trigram []'s 2014-04-29 17:43 GMT-03:00 Tiago Peczenyj : > isto é uma subrotina exportada > > onde vc viu > > my $p; > > $p->algumacoisa; > > ? > > > 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : > > #!/usr/bin/perl >> >> use strict; >> use warnings; >> use Math::Prime::Util ':all'; >> >> print "ok" if (is_prime($ARGV[0])); >> >> -- >> From: tiago.pecze...@gmail.com >> Date: Tue, 29 Apr 2014 17:36:23 -0300 >> To: rio-pm@pm.org >> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >> >> >> de exemplos. >> >> >> >> >> 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : >> >> Ola monges, >> >> Tenho uma pequena dúvida. >> Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria >> das vezes o seguinte: >> >> use Modulo::Modulo; >> >> my $p = Modulo::Modulo->new(); >> $p->funcao(); >> >> >> isso porque no modulo tem um contrutor ou foi gerado de presente ao autor >> quando usado o Moose ou semelhante. >> >> A questão é que alguns poucos módulos permitem que seja feito diretamente >> >> use Modulo::Modulo; >> >> my $p; >> $p->funcao(); >> >> >> A dúvida é: como o autor do módulo faz para que permita fazer a chamada >> das funções sem precisar disso: >> my $p = Modulo::Modulo->new(); >> >> ___ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> -- >> Tiago B. Peczenyj >> Linux User #405772 >> >> http://about.me/peczenyj >> >> ___ Rio-pm mailing list >> Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> ___ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
ok tem uma biblioteca chamada 'autobox' que pode fazer umas bruxarias. achei que poderia ser o caso 2014-04-29 17:57 GMT-03:00 Aureliano Guedes : > Errei nesse exemplo, seria my $p = algumacoisa(); > > Mas ok, o Junior falou do 'Exporter', então o que eu to tentando fazer é: > package Palindrome; > use strict; > use Exporter 'import'; > @EXPORT_OK = qw(is_palindrome); > sub is_palindrome { > return 1 if ($_[0] == reverse $_[0]); > } > 1; > > mas quando tento > > use Palindrome 'all'; > print "ok" if (is_palindrome($ARGV[0])); > > e executo na shell 'perl exemplo.pl 111' ou qualquer outro número > palíndromo ou não, não imprime "ok", apesar de não gerar nenhuma mensagem > de erro. > > ------------------ > From: tiago.pecze...@gmail.com > Date: Tue, 29 Apr 2014 17:43:22 -0300 > > To: rio-pm@pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > isto é uma subrotina exportada > > onde vc viu > > my $p; > > $p->algumacoisa; > > ? > > > 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : > > #!/usr/bin/perl > > use strict; > use warnings; > use Math::Prime::Util ':all'; > > print "ok" if (is_prime($ARGV[0])); > > -- > From: tiago.pecze...@gmail.com > Date: Tue, 29 Apr 2014 17:36:23 -0300 > To: rio-pm@pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > > de exemplos. > > > > > 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Tenho uma pequena dúvida. > Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria > das vezes o seguinte: > > use Modulo::Modulo; > > my $p = Modulo::Modulo->new(); > $p->funcao(); > > > isso porque no modulo tem um contrutor ou foi gerado de presente ao autor > quando usado o Moose ou semelhante. > > A questão é que alguns poucos módulos permitem que seja feito diretamente > > use Modulo::Modulo; > > my $p; > $p->funcao(); > > > A dúvida é: como o autor do módulo faz para que permita fazer a chamada > das funções sem precisar disso: > my $p = Modulo::Modulo->new(); > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > ___ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > ___ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Errei nesse exemplo, seria my $p = algumacoisa(); Mas ok, o Junior falou do 'Exporter', então o que eu to tentando fazer é:package Palindrome;use strict;use Exporter 'import';@EXPORT_OK = qw(is_palindrome);sub is_palindrome {return 1 if ($_[0] == reverse $_[0]);}1; mas quando tento use Palindrome 'all';print "ok" if (is_palindrome($ARGV[0])); e executo na shell 'perl exemplo.pl 111' ou qualquer outro número palíndromo ou não, não imprime "ok", apesar de não gerar nenhuma mensagem de erro. From: tiago.pecze...@gmail.com Date: Tue, 29 Apr 2014 17:43:22 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor isto é uma subrotina exportada onde vc viu my $p; $p->algumacoisa; ? 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : #!/usr/bin/perl use strict;use warnings;use Math::Prime::Util ':all'; print "ok" if (is_prime($ARGV[0])); From: tiago.pecze...@gmail.com Date: Tue, 29 Apr 2014 17:36:23 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor de exemplos. 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : Ola monges, Tenho uma pequena dúvida.Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria das vezes o seguinte: use Modulo::Modulo; my $p = Modulo::Modulo->new();$p->funcao(); isso porque no modulo tem um contrutor ou foi gerado de presente ao autor quando usado o Moose ou semelhante. A questão é que alguns poucos módulos permitem que seja feito diretamente use Modulo::Modulo; my $p;$p->funcao(); A dúvida é: como o autor do módulo faz para que permita fazer a chamada das funções sem precisar disso:my $p = Modulo::Modulo->new(); ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
isto é uma subrotina exportada onde vc viu my $p; $p->algumacoisa; ? 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : > #!/usr/bin/perl > > use strict; > use warnings; > use Math::Prime::Util ':all'; > > print "ok" if (is_prime($ARGV[0])); > > -- > From: tiago.pecze...@gmail.com > Date: Tue, 29 Apr 2014 17:36:23 -0300 > To: rio-pm@pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > > de exemplos. > > > > > 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Tenho uma pequena dúvida. > Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria > das vezes o seguinte: > > use Modulo::Modulo; > > my $p = Modulo::Modulo->new(); > $p->funcao(); > > > isso porque no modulo tem um contrutor ou foi gerado de presente ao autor > quando usado o Moose ou semelhante. > > A questão é que alguns poucos módulos permitem que seja feito diretamente > > use Modulo::Modulo; > > my $p; > $p->funcao(); > > > A dúvida é: como o autor do módulo faz para que permita fazer a chamada > das funções sem precisar disso: > my $p = Modulo::Modulo->new(); > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > ___ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Hi. É importante notar que, desta forma, o $self não aparece nos parâmetros recebidos pelo método acp(). https://gist.github.com/fvox/e27792a65b21e763292d []'s Em 29 de abril de 2014 17:36, Tiago Peczenyj escreveu: > de exemplos. > > > > > 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : > >> Ola monges, >> >> Tenho uma pequena dúvida. >> Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria >> das vezes o seguinte: >> >> use Modulo::Modulo; >> >> my $p = Modulo::Modulo->new(); >> $p->funcao(); >> >> >> isso porque no modulo tem um contrutor ou foi gerado de presente ao autor >> quando usado o Moose ou semelhante. >> >> A questão é que alguns poucos módulos permitem que seja feito diretamente >> >> use Modulo::Modulo; >> >> my $p; >> $p->funcao(); >> >> >> A dúvida é: como o autor do módulo faz para que permita fazer a chamada >> das funções sem precisar disso: >> my $p = Modulo::Modulo->new(); >> >> ___ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Junior "fvox" Moraes Perl Programmer Linux Reg. #557527 junior[at]fvox[dot]com[dot]br fb[dot]com/fvox twitter[dot]com/fvox ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
#!/usr/bin/perl use strict;use warnings;use Math::Prime::Util ':all'; print "ok" if (is_prime($ARGV[0])); From: tiago.pecze...@gmail.com Date: Tue, 29 Apr 2014 17:36:23 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor de exemplos. 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : Ola monges, Tenho uma pequena dúvida.Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria das vezes o seguinte: use Modulo::Modulo; my $p = Modulo::Modulo->new();$p->funcao(); isso porque no modulo tem um contrutor ou foi gerado de presente ao autor quando usado o Moose ou semelhante. A questão é que alguns poucos módulos permitem que seja feito diretamente use Modulo::Modulo; my $p;$p->funcao(); A dúvida é: como o autor do módulo faz para que permita fazer a chamada das funções sem precisar disso:my $p = Modulo::Modulo->new(); ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
de exemplos. 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : > Ola monges, > > Tenho uma pequena dúvida. > Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria > das vezes o seguinte: > > use Modulo::Modulo; > > my $p = Modulo::Modulo->new(); > $p->funcao(); > > > isso porque no modulo tem um contrutor ou foi gerado de presente ao autor > quando usado o Moose ou semelhante. > > A questão é que alguns poucos módulos permitem que seja feito diretamente > > use Modulo::Modulo; > > my $p; > $p->funcao(); > > > A dúvida é: como o autor do módulo faz para que permita fazer a chamada > das funções sem precisar disso: > my $p = Modulo::Modulo->new(); > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
[Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Ola monges, Tenho uma pequena dúvida.Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria das vezes o seguinte: use Modulo::Modulo; my $p = Modulo::Modulo->new();$p->funcao(); isso porque no modulo tem um contrutor ou foi gerado de presente ao autor quando usado o Moose ou semelhante. A questão é que alguns poucos módulos permitem que seja feito diretamente use Modulo::Modulo; my $p;$p->funcao(); A dúvida é: como o autor do módulo faz para que permita fazer a chamada das funções sem precisar disso:my $p = Modulo::Modulo->new(); ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm