Re: [Rio-pm] use 5.016 ou use strict/warnings

2013-03-04 Por tôpico Aureliano Guedes

fato ponto.de.exclamação

a bosta do shift do meu teclado não funciona.

From: leonardo.bal...@gmail.com
Date: Sun, 3 Mar 2013 23:41:29 -0300
To: rio-pm@pm.org
Subject: Re: [Rio-pm] use 5.016 ou use strict/warnings

Se extrairem as mega respostas do Garu na lista da pra escrever um livro e 
ganhar uma graninha.




Em 3 de março de 2013 07:53, Ole Peter Smith ole@gmail.com escreveu:


o 'nosso' breno servindo o gabarito
garu++!
0le
Send via Android
On Mar 3, 2013 2:16 AM, breno br...@rio.pm.org wrote:



 Mete um common::sense na bagaça toda e seja feliz!

 use perl5i;

 strict/warnings mas pela simples força do hábito.



perl5i, common::sense, Toolkit, strictures, Real::Handy,

Modern::Perl... todo mundo cedo ou tarde percebe um padrão no seu

código Perl, um conjunto de módulos e pragmata que sempre gosta de

usar em seus projetos. Perl é uma linguagem moldada no formato

TIMTOWTDI, então parece injusto com os desenvolvedores que um ou outro

conjunto de módulos seja ativado por padrão em qualquer código Perl.

Agora, uma vez que você encontrou o *seu* estilo, imagine ter que

escrever isso tudo no cabeçalho de cada novo arquivo:



---8---

use 5.16.0;

use warnings;

no indirect;

no autovivification;

use true;

use autodie qw(:all);

use autobox;

use utf8;

use File::stat;

use Time::Piece;

use Try::Tiny;

use Carp qw(croak);

...

---8---



Complicado, né? Por isso muitos autores acabam criando suas coletâneas

e distribuindo no CPAN, como as citadas lá no começo. No entanto, isso

também não é de graça: usuários do seu módulo agora tem que baixar uma

nova dependência apenas porque você teve preguiça de escrever use

$modulo; e você AINDA tem que escrever use COLETANEA no inicio de

cada novo arquivo que criar.



Independente da coletânea utilizada, o problema não foi resolvido,

apenas contornado. Mas nada temam, há uma alternativa:



App::MyPerl

==



Ao instalar o App::MyPerl, você ganha dois programas na linha de

comando: myperl e myprove. A partir daí, basta editar o arquivo

.myperl/modules dentro da raiz do seu projeto e adicionar a lista de

módulos e pragmata que você quer. Por exemplo:



---8---

v5.16

warnings

autodie=:all

---8---



Ao rodar seu programa com myperl, todos os módulos desse arquivo já

estarão carregados! O mesmo acontece para qualquer biblioteca dentro

de lib e t/lib, o que torna tudo muito mais fácil para o seu

desenvolvimento dentro de diretórios de projetos (como os criados pelo

Module::Starter, shipit ou Dist::Zilla). Tudo isso sem source filters

e sem que os erros e avisos sejam colocados em linhas diferentes (como

o que acontece quando linhas são adicionadas sem modificar o arquivo

original). Para rodar seus testes, é só usar o myprove em vez do

prove.



Os mais safos podem estar pensando: ok, mas qual a vantagem disso em

relação a simplesmente fazer alias myperl='perl -Mv5.16 -M...'? Não é

tão difícil assim. Tem razão, não é. Mas o myperl tem duas grandes

vantagens.



A primeira é que o diretório .myperl é criado por projeto. Assim

você pode definir diferentes conjuntos de pragmata dependendo do tipo

de projeto que está criando, por exemplo se é um projeto pessoal

pequeno, um trabalho profissional ou um com determinadas restrições de

ambiente.



A segunda vantagem do myperl é que, com ele, você não só tem o perl

com as configurações padrão que bem entender, mas garante que essas

mesmas configurações serão passadas para todos os usuários do seu

módulo automaticamente, sem a inclusão de novas dependências! Como? É

só adicionar a seguinte função ao seu Makefile.PL:



sub MY::postamble {

   qq{distdir: myperl_rewrite\nmyperl_rewrite:

create_distdir\n\tmyperl-rewrite \$(DISTVNAME)}

}



Pronto. Agora, quando for fazer o build para o CPAN, o myperl vai

adicionar as linhas pertinentes no código dentro da sua distribuição

durante o 'make dist' \o/



Enfim, o App::MyPerl é mais uma solução para facilitar a vida de quem

quer módulos e pragmas específicos para seus projetos, só que sem ter

que carregar mais uma dependência ou adicionar uma linha de código

sequer durante o desenvolvimento do seu programa. Adicione alguns

atalhos ao seu gerador de módulos favorito (module-starter, dzil,

shipit, entre outros) e você terá algo bem bacana na sua caixa de

ferramentas!



Disclaimer: ainda há algumas pontas soltas, o projeto acabou de nascer

e não está particularmente maduro - eu mesmo já mandei alguns pull

requests pro Matt - mas vale a pena ficar de olho!





[]s



-b

___

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] use 5.016 ou use strict/warnings

2013-03-03 Por tôpico Leo Balter
Se extrairem as mega respostas do Garu na lista da pra escrever um livro e
ganhar uma graninha.




Em 3 de março de 2013 07:53, Ole Peter Smith ole@gmail.com escreveu:

 o 'nosso' breno servindo o gabarito

 garu++!

 0le

 Send via Android
 On Mar 3, 2013 2:16 AM, breno br...@rio.pm.org wrote:

  Mete um common::sense na bagaça toda e seja feliz!
  use perl5i;
  strict/warnings mas pela simples força do hábito.

 perl5i, common::sense, Toolkit, strictures, Real::Handy,
 Modern::Perl... todo mundo cedo ou tarde percebe um padrão no seu
 código Perl, um conjunto de módulos e pragmata que sempre gosta de
 usar em seus projetos. Perl é uma linguagem moldada no formato
 TIMTOWTDI, então parece injusto com os desenvolvedores que um ou outro
 conjunto de módulos seja ativado por padrão em qualquer código Perl.
 Agora, uma vez que você encontrou o *seu* estilo, imagine ter que
 escrever isso tudo no cabeçalho de cada novo arquivo:

 ---8---
 use 5.16.0;
 use warnings;
 no indirect;
 no autovivification;
 use true;
 use autodie qw(:all);
 use autobox;
 use utf8;
 use File::stat;
 use Time::Piece;
 use Try::Tiny;
 use Carp qw(croak);
 ...
 ---8---

 Complicado, né? Por isso muitos autores acabam criando suas coletâneas
 e distribuindo no CPAN, como as citadas lá no começo. No entanto, isso
 também não é de graça: usuários do seu módulo agora tem que baixar uma
 nova dependência apenas porque você teve preguiça de escrever use
 $modulo; e você AINDA tem que escrever use COLETANEA no inicio de
 cada novo arquivo que criar.

 Independente da coletânea utilizada, o problema não foi resolvido,
 apenas contornado. Mas nada temam, há uma alternativa:

 App::MyPerl
 ==

 Ao instalar o App::MyPerl, você ganha dois programas na linha de
 comando: myperl e myprove. A partir daí, basta editar o arquivo
 .myperl/modules dentro da raiz do seu projeto e adicionar a lista de
 módulos e pragmata que você quer. Por exemplo:

 ---8---
 v5.16
 warnings
 autodie=:all
 ---8---

 Ao rodar seu programa com myperl, todos os módulos desse arquivo já
 estarão carregados! O mesmo acontece para qualquer biblioteca dentro
 de lib e t/lib, o que torna tudo muito mais fácil para o seu
 desenvolvimento dentro de diretórios de projetos (como os criados pelo
 Module::Starter, shipit ou Dist::Zilla). Tudo isso sem source filters
 e sem que os erros e avisos sejam colocados em linhas diferentes (como
 o que acontece quando linhas são adicionadas sem modificar o arquivo
 original). Para rodar seus testes, é só usar o myprove em vez do
 prove.

 Os mais safos podem estar pensando: ok, mas qual a vantagem disso em
 relação a simplesmente fazer alias myperl='perl -Mv5.16 -M...'? Não é
 tão difícil assim. Tem razão, não é. Mas o myperl tem duas grandes
 vantagens.

 A primeira é que o diretório .myperl é criado por projeto. Assim
 você pode definir diferentes conjuntos de pragmata dependendo do tipo
 de projeto que está criando, por exemplo se é um projeto pessoal
 pequeno, um trabalho profissional ou um com determinadas restrições de
 ambiente.

 A segunda vantagem do myperl é que, com ele, você não só tem o perl
 com as configurações padrão que bem entender, mas garante que essas
 mesmas configurações serão passadas para todos os usuários do seu
 módulo automaticamente, sem a inclusão de novas dependências! Como? É
 só adicionar a seguinte função ao seu Makefile.PL:

 sub MY::postamble {
qq{distdir: myperl_rewrite\nmyperl_rewrite:
 create_distdir\n\tmyperl-rewrite \$(DISTVNAME)}
 }

 Pronto. Agora, quando for fazer o build para o CPAN, o myperl vai
 adicionar as linhas pertinentes no código dentro da sua distribuição
 durante o 'make dist' \o/

 Enfim, o App::MyPerl é mais uma solução para facilitar a vida de quem
 quer módulos e pragmas específicos para seus projetos, só que sem ter
 que carregar mais uma dependência ou adicionar uma linha de código
 sequer durante o desenvolvimento do seu programa. Adicione alguns
 atalhos ao seu gerador de módulos favorito (module-starter, dzil,
 shipit, entre outros) e você terá algo bem bacana na sua caixa de
 ferramentas!

 Disclaimer: ainda há algumas pontas soltas, o projeto acabou de nascer
 e não está particularmente maduro - eu mesmo já mandei alguns pull
 requests pro Matt - mas vale a pena ficar de olho!


 []s

 -b
 ___
 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] use 5.016 ou use strict/warnings

2013-03-02 Por tôpico Marcio Ferreira
Use 5.016; jà engloba warnings, nao?
On Mar 1, 2013 9:14 PM, breno br...@rio.pm.org wrote:

 quando não me importo com retrocompatibilidade e quero todas as
 features ativadas, meu cabeçalho é:

 use 5.16.0;
 use warnings;

 []s

 -b

 2013/3/1 Junior Moraes juniiior...@gmail.com:
  Hi.
 
  strict/warnings mas pela simples força do hábito.
  Mas entre outras opções, common::sense[1] for the win!
 
  [1] http://search.cpan.org/~mlehmann/common-sense-3.6/sense.pm.PL
 
  []'s
 
  Em 1 de março de 2013 16:50, Marcio Ferreira
  marciodesouzaferre...@gmail.com escreveu:
 
  Well, o que vocês preferem entre _use 5.016_ e _use strict; use
 warnings;_
  ?
 
  Faz tempo que uso o _use 5.016_ e vocês?
 
  Emendando outra, que versão de perl vocês usam em produção?
 
  []s,
 
  Marcio Ferreira
  skype: marcio.ferreir4
  (21) 8365-7768
 
  ___
  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] use 5.016 ou use strict/warnings

2013-03-02 Por tôpico thiago glauco sanchez
On Sat, 2013-03-02 at 13:20 -0300, Marcio Ferreira wrote:
 Use 5.016; jà engloba warnings, nao?
sim. já engloba.

thiago glauco
 
 On Mar 1, 2013 9:14 PM, breno br...@rio.pm.org wrote:
 quando não me importo com retrocompatibilidade e quero todas
 as
 features ativadas, meu cabeçalho é:
 
 use 5.16.0;
 use warnings;
 
 []s
 
 -b
 
 2013/3/1 Junior Moraes juniiior...@gmail.com:
  Hi.
 
  strict/warnings mas pela simples força do hábito.
  Mas entre outras opções, common::sense[1] for the win!
 
  [1]
 http://search.cpan.org/~mlehmann/common-sense-3.6/sense.pm.PL
 
  []'s
 
  Em 1 de março de 2013 16:50, Marcio Ferreira
  marciodesouzaferre...@gmail.com escreveu:
 
  Well, o que vocês preferem entre _use 5.016_ e _use strict;
 use warnings;_
  ?
 
  Faz tempo que uso o _use 5.016_ e vocês?
 
  Emendando outra, que versão de perl vocês usam em produção?
 
  []s,
 
  Marcio Ferreira
  skype: marcio.ferreir4
  (21) 8365-7768
 
  ___
  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


___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm


Re: [Rio-pm] use 5.016 ou use strict/warnings

2013-03-02 Por tôpico breno
 Mete um common::sense na bagaça toda e seja feliz!
 use perl5i;
 strict/warnings mas pela simples força do hábito.

perl5i, common::sense, Toolkit, strictures, Real::Handy,
Modern::Perl... todo mundo cedo ou tarde percebe um padrão no seu
código Perl, um conjunto de módulos e pragmata que sempre gosta de
usar em seus projetos. Perl é uma linguagem moldada no formato
TIMTOWTDI, então parece injusto com os desenvolvedores que um ou outro
conjunto de módulos seja ativado por padrão em qualquer código Perl.
Agora, uma vez que você encontrou o *seu* estilo, imagine ter que
escrever isso tudo no cabeçalho de cada novo arquivo:

---8---
use 5.16.0;
use warnings;
no indirect;
no autovivification;
use true;
use autodie qw(:all);
use autobox;
use utf8;
use File::stat;
use Time::Piece;
use Try::Tiny;
use Carp qw(croak);
...
---8---

Complicado, né? Por isso muitos autores acabam criando suas coletâneas
e distribuindo no CPAN, como as citadas lá no começo. No entanto, isso
também não é de graça: usuários do seu módulo agora tem que baixar uma
nova dependência apenas porque você teve preguiça de escrever use
$modulo; e você AINDA tem que escrever use COLETANEA no inicio de
cada novo arquivo que criar.

Independente da coletânea utilizada, o problema não foi resolvido,
apenas contornado. Mas nada temam, há uma alternativa:

App::MyPerl
==

Ao instalar o App::MyPerl, você ganha dois programas na linha de
comando: myperl e myprove. A partir daí, basta editar o arquivo
.myperl/modules dentro da raiz do seu projeto e adicionar a lista de
módulos e pragmata que você quer. Por exemplo:

---8---
v5.16
warnings
autodie=:all
---8---

Ao rodar seu programa com myperl, todos os módulos desse arquivo já
estarão carregados! O mesmo acontece para qualquer biblioteca dentro
de lib e t/lib, o que torna tudo muito mais fácil para o seu
desenvolvimento dentro de diretórios de projetos (como os criados pelo
Module::Starter, shipit ou Dist::Zilla). Tudo isso sem source filters
e sem que os erros e avisos sejam colocados em linhas diferentes (como
o que acontece quando linhas são adicionadas sem modificar o arquivo
original). Para rodar seus testes, é só usar o myprove em vez do
prove.

Os mais safos podem estar pensando: ok, mas qual a vantagem disso em
relação a simplesmente fazer alias myperl='perl -Mv5.16 -M...'? Não é
tão difícil assim. Tem razão, não é. Mas o myperl tem duas grandes
vantagens.

A primeira é que o diretório .myperl é criado por projeto. Assim
você pode definir diferentes conjuntos de pragmata dependendo do tipo
de projeto que está criando, por exemplo se é um projeto pessoal
pequeno, um trabalho profissional ou um com determinadas restrições de
ambiente.

A segunda vantagem do myperl é que, com ele, você não só tem o perl
com as configurações padrão que bem entender, mas garante que essas
mesmas configurações serão passadas para todos os usuários do seu
módulo automaticamente, sem a inclusão de novas dependências! Como? É
só adicionar a seguinte função ao seu Makefile.PL:

sub MY::postamble {
   qq{distdir: myperl_rewrite\nmyperl_rewrite:
create_distdir\n\tmyperl-rewrite \$(DISTVNAME)}
}

Pronto. Agora, quando for fazer o build para o CPAN, o myperl vai
adicionar as linhas pertinentes no código dentro da sua distribuição
durante o 'make dist' \o/

Enfim, o App::MyPerl é mais uma solução para facilitar a vida de quem
quer módulos e pragmas específicos para seus projetos, só que sem ter
que carregar mais uma dependência ou adicionar uma linha de código
sequer durante o desenvolvimento do seu programa. Adicione alguns
atalhos ao seu gerador de módulos favorito (module-starter, dzil,
shipit, entre outros) e você terá algo bem bacana na sua caixa de
ferramentas!

Disclaimer: ainda há algumas pontas soltas, o projeto acabou de nascer
e não está particularmente maduro - eu mesmo já mandei alguns pull
requests pro Matt - mas vale a pena ficar de olho!


[]s

-b
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm


[Rio-pm] use 5.016 ou use strict/warnings

2013-03-01 Por tôpico Marcio Ferreira
Well, o que vocês preferem entre _use 5.016_ e _use strict; use warnings;_ ?

Faz tempo que uso o _use 5.016_ e vocês?

Emendando outra, que versão de perl vocês usam em produção?

[]s,

Marcio Ferreira
skype: marcio.ferreir4
(21) 8365-7768
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] use 5.016 ou use strict/warnings

2013-03-01 Por tôpico Stanislaw Pusep
use common::sense;


ABS()


2013/3/1 Marcio Ferreira marciodesouzaferre...@gmail.com

 Well, o que vocês preferem entre _use 5.016_ e _use strict; use warnings;_
 ?

 Faz tempo que uso o _use 5.016_ e vocês?

 Emendando outra, que versão de perl vocês usam em produção?

 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768

 ___
 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