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 <bla...@gmail.com>: > 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 <tiago.pecze...@gmail.com>: > > isto é uma subrotina exportada >> >> onde vc viu >> >> my $p; >> >> $p->algumacoisa; >> >> ? >> >> >> 2014-04-29 17:40 GMT-03:00 Aureliano Guedes <guedes_1...@hotmail.com>: >> >> #!/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 <guedes_1...@hotmail.com>: >>> >>> 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