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
_______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm