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

2014-04-29 Por tôpico Tiago Peczenyj
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

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

2014-04-29 Por tôpico 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 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

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

2014-04-29 Por tôpico Tiago Peczenyj
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

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

2014-04-29 Por tôpico 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 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

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

2014-04-29 Por tôpico Tiago Peczenyj
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 guedes_1...@hotmail.com:

 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 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




-- 
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

2014-04-29 Por tôpico 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 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

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

2014-04-29 Por tôpico Blabos de Blebe
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

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

2014-04-29 Por tôpico 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 bla...@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@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

2014-04-29 Por tôpico Blabos de Blebe
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 juniiior...@gmail.com:

 Hi.

 Em 29 de abril de 2014 18:07, Blabos de Blebe bla...@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@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

2014-04-29 Por tôpico Tiago Peczenyj
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 guedes_1...@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: 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 bla...@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@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

2014-04-29 Por tôpico 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 guedes_1...@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: 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 bla...@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@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

2014-04-29 Por tôpico Blabos de Blebe
Pacman, copião :)


2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@gmail.comescreveu:

 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

2014-04-29 Por tôpico 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 bla...@gmail.com:

 Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@gmail.comescreveu:

 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

2014-04-29 Por tôpico 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 bla...@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 bla...@gmail.com:

 Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@gmail.comescreveu:

 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

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

2014-04-29 Por tôpico Blabos de Blebe
 café deve ser 'duro'

TimToady!!!


2014-04-29 19:12 GMT-03:00 Renato Santos renato.c...@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 bla...@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 bla...@gmail.com:

 Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@gmail.comescreveu:

 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
 

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

2014-04-29 Por tôpico Blabos de Blebe
Mas ok, não é uma boa prática...


2014-04-29 19:15 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  café deve ser 'duro'

 TimToady!!!


 2014-04-29 19:12 GMT-03:00 Renato Santos renato.c...@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 bla...@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 bla...@gmail.com:

 Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@gmail.comescreveu:

 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 

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

2014-04-29 Por tôpico 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 bla...@gmail.com escreveu:

Mas ok, não é uma boa prática...


2014-04-29 19:15 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  café deve ser 'duro'

 TimToady!!!


 2014-04-29 19:12 GMT-03:00 Renato Santos renato.c...@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 bla...@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 bla...@gmail.com:

 Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@gmail.comescreveu:

 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 

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

2014-04-29 Por tôpico Junior Moraes
Hi.

Em 29 de abril de 2014 18:35, Blabos de Blebe bla...@gmail.com 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

2014-04-29 Por tôpico 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 guedes_1...@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 bla...@gmail.com escreveu:

  Mas ok, não é uma boa prática...


 2014-04-29 19:15 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  café deve ser 'duro'

  TimToady!!!


 2014-04-29 19:12 GMT-03:00 Renato Santos renato.c...@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 bla...@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 bla...@gmail.com:

  Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@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

 

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

2014-04-29 Por tôpico Aureliano Guedes
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 renato.c...@gmail.com 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 guedes_1...@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 bla...@gmail.com escreveu:

  Mas ok, não é uma boa prática...


 2014-04-29 19:15 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  café deve ser 'duro'

  TimToady!!!


 2014-04-29 19:12 GMT-03:00 Renato Santos renato.c...@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 bla...@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 bla...@gmail.com:

  Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@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 

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

2014-04-29 Por tôpico 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 renato.c...@gmail.com:

 ** 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 guedes_1...@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 bla...@gmail.com escreveu:

  Mas ok, não é uma boa prática...


 2014-04-29 19:15 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  café deve ser 'duro'

  TimToady!!!


 2014-04-29 19:12 GMT-03:00 Renato Santos renato.c...@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 bla...@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 bla...@gmail.com:

  Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@gmail.comescreveu:

 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 

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

2014-04-29 Por tôpico Aureliano Guedes
Ainda sim mataria o dragão com perl.
http://www.programacaoprogressiva.net/2012/12/Como-programadores-matariam-um-dragao-e-salvariam-a-princesa.html?m=1

Renato Santos renato.c...@gmail.com escreveu:

http://i.imgur.com/8iUZEZt.png
só pela zuera!


2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra dan.vincigue...@gmail.com:

 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 renato.c...@gmail.com:

 ** 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 guedes_1...@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 bla...@gmail.com escreveu:

  Mas ok, não é uma boa prática...


 2014-04-29 19:15 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  café deve ser 'duro'

  TimToady!!!


 2014-04-29 19:12 GMT-03:00 Renato Santos renato.c...@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 bla...@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 bla...@gmail.com:

  Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@gmail.comescreveu:

 Só 

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

2014-04-29 Por tôpico Aureliano Guedes
Ainda sim mataria o dragão com perl.
http://www.programacaoprogressiva.net/2012/12/Como-programadores-matariam-um-dragao-e-salvariam-a-princesa.html?m=1

Renato Santos renato.c...@gmail.com escreveu:

http://i.imgur.com/8iUZEZt.png
só pela zuera!


2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra dan.vincigue...@gmail.com:

 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 renato.c...@gmail.com:

 ** 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 guedes_1...@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 bla...@gmail.com escreveu:

  Mas ok, não é uma boa prática...


 2014-04-29 19:15 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  café deve ser 'duro'

  TimToady!!!


 2014-04-29 19:12 GMT-03:00 Renato Santos renato.c...@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 bla...@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 bla...@gmail.com:

  Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@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_1...@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: 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 bla...@gmail.comescreveu:

 Só