[SP-pm] FAQ - Primeira rodada 09/10 até 17/10

Marcio Ferreira marciodesouzaferreira at gmail.com
Tue Oct 18 02:26:47 PDT 2011


1 - Apareceu uma expressão regular bizarra na minha vida, comofaz ?

Perl é famoso (e as vezes assustador) por seu incrível suporte *nativo* a
expressões regulares.

Infelizmente alguns programadores não utilizam recursos da liguagem para
tornar seu código mais legível, como o modificador //x[1], que permite você
segregar sua expressão em blocos, linhas, ou qualquer coisa que _humanos_
possam ler mais facilmente =D

Mas até para expressões bizarras, o CPAN tem solução,
YAPE::Regex::Explain[2], Agora  você não precisa mais temer =D

<code>

#!/usr/bin/perl
use feature 'say';
use YAPE::Regex::Explain;

my $regex = qr/<([^\s]+)(\s[^>]*?)?(?<!)>/;

say YAPE::Regex::Explain->new($regex)->explain;

</code>

[1] - http://perldoc.perl.org/perlretut.html#Building-a-regexp
[2] - https://metacpan.org/module/YAPE::Regex::Explain


2 - É díficil aprender Perl?[1]

Não, Perl é fácil de começar a aprender e a continuar aprendendo. Perl é
parecido com a maioria das linguagens de programação que vocẽ pode ter
tido experiência, então se você programa em C, AWK, shell script ou
mesmo BASIC, você ja está parcialmente lá.

Muitas tarefas somente requerem um pouco da linguagem Perl. Um dos
lemas do desenvolvimento Perl é "existe mais de um modo de faze-lo"
(TMTOWDI, as vezes pronunciado "tim toady"). Perl tem uma curva de
aprendizado rasa(fácil de aprender) e longa(há chão enquanto você quiser
caminhar).

Finalmente, porque Perl é frequentemente(mas não sempre, e certamente
não por definição) uma linguagem interpretada, você pode escrever seus
programas e testar sem o passo intermediário da compilação, permitindo
experimentar e testar/debugar fácil e rapidamente. Esta facilidade de
experimentar achata a curva de aprendizado ainda mais.

Coisas que tornam Perl fácil de aprender: experiência em Unix, quase
qualquer tipo de experiência de programação, entendimento de expressões
regulares, habilidade de entender código alheio. Se há algo que você precisa
fazer, isso provavelmente já foi feito e um exemplo funcional útil está
disponível. Não se esqueça de qualquer módulo Perl. Eles são discutidos
em outra parte do FAQ, juntamente com CPAN.

[1] - tradução livre do
http://perldoc.perl.org/perlfaq1.html#Is-Perl-difficult-to-learn%3f


[]s,

@_marcioferreira
Marcio Ferreira
marciodesouzaferreira.blogspot.com

"Perl lives as the 'toolbox for Unix' "



2011/10/17 Leonardo Ruoso <leonardo at ruoso.com>

> Em Seg, 2011-10-17 às 19:08 -0200, Eden Cardim escreveu:
> > >>>>> "Leonardo" == Leonardo Ruoso <leonardo at ruoso.com> writes:
> > Invés disso, use o App::cpanminus que é trivial de instalar, e que sabe
> > fazer instalações auto-contidas via local-lib:
> >
> >     $ curl -L http://cpanmin.us | perl - -L meusmodulos --self-upgrade
> >     $ cpanm -L meusmodulos local::lib Modulo::Um Modulo::Dois
> >
> > e no seu programa:
> >
> >   use local::lib 'meusmodulos';
> >
> > São tremendas as possibilidades. Por exemplo, você pode distribuir um
> > diretório com a sua aplicação e um subdiretório contendo a instalação de
> > todas as dependências. O Miyagawa tá trabalhando num sistema chamado
> > carton pra facilitar ainda mais esse processo.
> >
> >     Leonardo> ficar criando múltiplos chroot para poder instalar módulos
> >     Leonardo> Perl atualizados.
> >
> > Preciso atravessar a rua, me dá carona na nave espacial? :D
> Claro, dois palitos pra clonar minha VM Catalyst pré-configurada :-D
>
> --
> Leonardo Ruoso - Journalist/Perl Developer
> Media - UFC/2006 - Telecommunications - IFCE/1998
> leonardo at ruoso.com - (11) 3522-9612
> Visit
>  - http://www.linkedin.com/in/lruoso (professional profile)
>  - http://www.oktiva.com.br (company website)
>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20111018/d8dde2b2/attachment-0001.html>


More information about the SaoPaulo-pm mailing list