From aferreira em shopzilla.com Wed Jun 11 05:43:13 2008 From: aferreira em shopzilla.com (Adriano Ferreira) Date: Wed, 11 Jun 2008 09:43:13 -0300 Subject: [Triangulo-pm] =?iso-8859-1?q?=5BPerl_-_B=E1sico=5D_=232_Vari=E1v?= =?iso-8859-1?q?eis?= Message-ID: <73ddeb6c0806110543r144a4d88je49bc56dc9dc6b0a@mail.gmail.com> [Perl - Básico] #2 Variáveis Perl é conhecido pelo uso (ou abuso) de caracteres não alfanuméricos no código fonte dos programas. Neste ponto, a linguagem vai muito além dos tradicionais operadores "+", "*", "=", "!" que tudo mundo conhece de linguagens como C ou Java. A introdução destes caracteres estranhos já começa pelas variáveis. Variáveis em Perl são claramente marcadas por um símbolo estranho no começo: $contador @servidores %nome_de *GLOB &my_sub Os três primeiros exemplos são fundamentais e aparecem o tempo todo em programação Perl. $contador é uma variável escalar. @servidores é um *array*. %nome_de é um *hash*. Sobre os outros, podemos falar mais tarde: *GLOB tem a ver com a tabela de símbolos de um programa Perl e &my_sub é uma forma exótica de referenciar uma subrotina (que tem os seus usos e suas surpresas). Estes caracteres '$', '@', '%', '*', '&' são chamados de *sigils* e marcam claramente as variáveis no programa fonte. use LWP::Simple qw( get ); my $uri = 'http://search.cpan.org/src/GAAS/libwww-perl-5.812/README'; # download 'README' da distribuição libwww-perl-5.812 my $content = get($uri); Neste pedaço de código acima, as variáveis são $uri e $content. "LWP::Simple" é o nome de um módulo e "get" uma subrotina vinda deste módulo. Não há confusão entre variáveis e módulos/subrotinas. Esta distinção pode parecer redundante, mas tem seus benefícios. Ela estabelece *namespaces* (espaços de nomes) diferentes para variáveis escalares, *arrays*, *hashes* e subrotinas/módulos. E um bônus: interpolação em strings sem complicações: my $name = 'Fulano'; my %bag = { laranja => 2, pera => 3 }; print "$name tem $bag{laranja} laranjas e $bag{pera} peras\n"; # saída: Fulano tem 2 laranjas e 3 peras Triangulo-pm, 2008-06-11 09:40 From a.r.ferreira em gmail.com Wed Jun 11 05:50:19 2008 From: a.r.ferreira em gmail.com (Adriano Ferreira) Date: Wed, 11 Jun 2008 09:50:19 -0300 Subject: [Triangulo-pm] =?iso-8859-1?q?A_lista_de_discuss=F5es?= Message-ID: <73ddeb6c0806110550l14d09d68kf2fea229b1ca0637@mail.gmail.com> Apenas como informação de referência, esta lista de discussão é provida a partir dos servidores da pm.org (o grupo mundial de PerlMongers). O endereço para enviar suas mensagens à lista é: triangulo-pm at pm.org A interface para se inscrever ou deixar a lista é: http://mail.pm.org/mailman/listinfo/triangulo-pm E você ainda pode ver as mensagens que já passaram pela lista no arquivo: http://mail.pm.org/pipermail/triangulo-pm/ Seja bem vindo. Participe. Pergunte. Ensine. Chame outros para participarem deste grupo. Se tivermos massa crítica, podemos até começar com encontros sociais (onde a gente se reúne para beber cerveja -- ou qualquer outro líquido do agrado do freguês -- e contar estórias) e então pensar até em encontros técnicos (onde alguns participantes apresentarão breves palestras técnicas para o deleite da audiência). Saudações, Adriano Ferreira From aferreira em shopzilla.com Thu Jun 12 06:07:29 2008 From: aferreira em shopzilla.com (Adriano Ferreira) Date: Thu, 12 Jun 2008 10:07:29 -0300 Subject: [Triangulo-pm] =?iso-8859-1?q?=5BPerl_-_B=E1sico=5D_=233_Estrito_?= =?iso-8859-1?q?e_Cuidadoso?= Message-ID: <73ddeb6c0806120607o781a36dfq818222650afd4402@mail.gmail.com> [Perl - Básico] #3 Estrito e Cuidadoso A linguagem Perl foi propositalmente projetada para servir tanto a programadores experientes quanto a iniciantes. Esta flexibilidade veio ao longo de anos de desenvolvimento. As práticas da linguagem mudaram junto com a mudança de hábitos de seus programadores. Uma destas práticas para se ter em mente logo ao iniciar o aprendizado de Perl é: sempre coloque no início de seus programas os comandos: use strict; use warnings; Por quê? Porque em seu modo *default*, Perl é extremamente complacente e compatível com a programação de anos atrás. Estes comandos ativam uma série de checagens que ajudam iniciantes e quaisquer outros tipos de programadores a seguir confiantes escrevendo programas Perl de qualquer tamanho. Sem "strict", muitas coisas surpreendentes podem acontecer: variáveis ganham vida automaticamente (quer você queira ou não) $count++; vai automaticamente trazer a variável $count à vida e o incremento vai passar o seu valor inicial de "undef" (que é 0 do ponto de vista numérico) para 1. O grande problema com esta capacidade é que estas variáveis surgidas do nada podem ter o mesmo nome que outras que ocorrem em outros pontos do programa. O pior é que elas serão as mesmas porque vão compartilhar o mesmo espaço. Outro problema comum são erros de digitação, que podem demorar para ser percebidos e levar a *bugs* difíceis de encontrar. Por exemplo, se em um pedaço razoavelmente longo de código, você se refere a $cont quando queria dizer $count e o Perl fica quieto (porque você deve saber o que está fazendo). Com "use strict", as coisas são diferentes: $count++ leva ao erro Global symbol "$count" requires explicit package name [Símbolo global "$count" requer nome de pacote explícito] O uso correto é tornar a variável local ao escopo onde ela precisa existir com uma declaração "my": my $count; ... $count++; Sem "warnings", algumas situações suspeitas passam sem chamar atenção. Por exemplo, my $count = 'a'; $count += 1; converte o string 'a' silenciosamente para 0 e incrementa o valor da variável $count para 1. Provavelmente, não é esta a intenção do programador. Com "use warnings", a seguinte mensagem vai para "STDERR": Argument "a" isn't numeric in addition (+) [O argumento "a" não é numérico na adição (+)] Note que *warnings* não interrompem o programa, como os erros de verdade gerados por "strict". A mensagem é enviada para o "arquivo" de erros, gerando ruído inesperado na saída do programa. O programador, que deve estar sempre atento a estas mensagens porque indicam erros em potencial, deve encontrar a sua fonte e tratar de entender e provavelmente consertar a sua causa. Há muito mais em "use strict" e "use warnings". Mas a recomendação básica é use sempre. Hoje apenas código muito exótico do núcleo do interpretador Perl ousa omitir estas diretivas. (E mesmo em alguns destes casos, eles foram testados com estas diretivas ligadas e então desativadas para evitar problemas de compatibilidade com programas antigos e questões de desempenho.) Programar em Perl sem "strict" e "warnings" é como andar na corda bamba sem corda de segurança. É possível mas exige concentração contínua e os efeitos de um engano podem ser inconvenientes no mínimo. Triangulo-pm, 2008-06-12 10:00 From a.r.ferreira em gmail.com Sat Jun 14 14:22:37 2008 From: a.r.ferreira em gmail.com (Adriano Ferreira) Date: Sat, 14 Jun 2008 18:22:37 -0300 Subject: [Triangulo-pm] Quem quer saber de Perl? Message-ID: <73ddeb6c0806141422n110a3f6fued9dd209804e68f8@mail.gmail.com> "Quem quer saber de Perl?" Esta é uma pergunta que me intriga. Principalmente no contexto da região do Triângulo Mineiro, onde conheço uns poucos programadores: Java, Delphi, PHP e já ouvi falar de umas outras poucas linguagens realmente comerciais (embora aqui e ali tenha aparecido algumas referências exóticas como Tcl ou Python em projetos bem específicos). É, eu concordo, não tenho andado muito ou conhecido muita gente ultimamente. Alguém aqui inscrito sabe como poderíamos pelo menos fazer saber aos estudantes das várias faculdades de computação da região que existe este grupo de interesse na linguagem Perl? Hoje não tenho contato com estudantes e acho que eles poderiam ser a maior audiência desta lista em um primeiro instante. Outro nicho interessante são programadores jovens espalhados pelas várias empresas da região, aqueles que ainda tem curiosidade em aprender mais alguns truques para o seu portfólio. Se alguém tiver algo a sugerir, sou todo ouvidos. Adriano Ferreira From lucasmateus.oliveira em gmail.com Sat Jun 14 15:56:02 2008 From: lucasmateus.oliveira em gmail.com (Lucas Mateus) Date: Sat, 14 Jun 2008 19:56:02 -0300 Subject: [Triangulo-pm] Quem quer saber de Perl? In-Reply-To: <73ddeb6c0806141422n110a3f6fued9dd209804e68f8@mail.gmail.com> References: <73ddeb6c0806141422n110a3f6fued9dd209804e68f8@mail.gmail.com> Message-ID: A UFU a uns anos atrás ministrava um semestre de Perl para os alunos, mas hj nao existe isso mais, lembro q o povo reclamava muito dizendo q Perl era dificil e tals. Acho q um publico interessante para o Triangulo seria os profissionais de Infra (SysAdmins), mesmo pq empresas do Triangulo so conhecem Java/.NET escapou disso ja fica dificil para os "gestores", ao menos os q eu conheço. Mas acho q o publico tendente a aprender a linguagem seria os SysAdmins, ao ver as marambolias q Perl pode fazer pra eles no mundo da Infra eles vão querer encostar o famoso Shell. 2008/6/14 Adriano Ferreira : > "Quem quer saber de Perl?" > > Esta é uma pergunta que me intriga. Principalmente no contexto da > região do Triângulo Mineiro, onde conheço uns poucos programadores: > Java, Delphi, PHP e já ouvi falar de umas outras poucas linguagens > realmente comerciais (embora aqui e ali tenha aparecido algumas > referências exóticas como Tcl ou Python em projetos bem específicos). > É, eu concordo, não tenho andado muito ou conhecido muita gente > ultimamente. > > Alguém aqui inscrito sabe como poderíamos pelo menos fazer saber aos > estudantes das várias faculdades de computação da região que existe > este grupo de interesse na linguagem Perl? Hoje não tenho contato com > estudantes e acho que eles poderiam ser a maior audiência desta lista > em um primeiro instante. > > Outro nicho interessante são programadores jovens espalhados pelas > várias empresas da região, aqueles que ainda tem curiosidade em > aprender mais alguns truques para o seu portfólio. > > Se alguém tiver algo a sugerir, sou todo ouvidos. > > Adriano Ferreira > _______________________________________________ > Triangulo-pm mailing list > Triangulo-pm em pm.org > http://mail.pm.org/mailman/listinfo/triangulo-pm > http://mail.pm.org/pipermail/triangulo-pm/ > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/triangulo-pm/attachments/20080614/66ae7815/attachment.html From aferreira em shopzilla.com Sun Jun 15 04:55:59 2008 From: aferreira em shopzilla.com (Adriano Ferreira) Date: Sun, 15 Jun 2008 08:55:59 -0300 Subject: [Triangulo-pm] Quem quer saber de Perl? In-Reply-To: References: <73ddeb6c0806141422n110a3f6fued9dd209804e68f8@mail.gmail.com> Message-ID: <73ddeb6c0806150455x22e82ea1o48b82b045b3ccaea@mail.gmail.com> 2008/6/14 Lucas Mateus : > A UFU a uns anos atrás ministrava um semestre de Perl para os alunos, mas hj Isto é novidade para mim. Isto correspondia a uma disciplina de Ciência da Computação? Obrigatória ou optativa? Faz idéia do professor que ministrava este curso? > nao existe isso mais, lembro q o povo reclamava muito dizendo q Perl era > dificil e tals. Acho q um publico interessante para o Triangulo seria os > profissionais de Infra (SysAdmins), mesmo pq empresas do Triangulo so > conhecem Java/.NET escapou disso ja fica dificil para os "gestores", ao > menos os q eu conheço. Sim, concordo com você. SysAdmins que não tenham suas mentes embotadas para querer fazer sistemas com Shell são um alvo em potencial que tem muito a lucrar com um pouco de Perl em seu toolbox. > Mas acho q o publico tendente a aprender a linguagem seria os SysAdmins, ao > ver as marambolias q Perl pode fazer pra eles no mundo da Infra eles vão > querer encostar o famoso Shell. Acho que pode haver esperanças em um trabalho de boca-a-boca porque, me parece, que é díficil atingir tanto os sysadmins como os programadores em geral que estão nas empresas como um grupo. Obrigado pela resposta, Lucas. Mais alguém tem o que acrescentar? Adriano. > > > 2008/6/14 Adriano Ferreira : >> >> "Quem quer saber de Perl?" >> >> Esta é uma pergunta que me intriga. Principalmente no contexto da >> região do Triângulo Mineiro, onde conheço uns poucos programadores: >> Java, Delphi, PHP e já ouvi falar de umas outras poucas linguagens >> realmente comerciais (embora aqui e ali tenha aparecido algumas >> referências exóticas como Tcl ou Python em projetos bem específicos). >> É, eu concordo, não tenho andado muito ou conhecido muita gente >> ultimamente. >> >> Alguém aqui inscrito sabe como poderíamos pelo menos fazer saber aos >> estudantes das várias faculdades de computação da região que existe >> este grupo de interesse na linguagem Perl? Hoje não tenho contato com >> estudantes e acho que eles poderiam ser a maior audiência desta lista >> em um primeiro instante. >> >> Outro nicho interessante são programadores jovens espalhados pelas >> várias empresas da região, aqueles que ainda tem curiosidade em >> aprender mais alguns truques para o seu portfólio. >> >> Se alguém tiver algo a sugerir, sou todo ouvidos. >> >> Adriano Ferreira >> _______________________________________________ >> Triangulo-pm mailing list >> Triangulo-pm em pm.org >> http://mail.pm.org/mailman/listinfo/triangulo-pm >> http://mail.pm.org/pipermail/triangulo-pm/ > > > _______________________________________________ > Triangulo-pm mailing list > Triangulo-pm em pm.org > http://mail.pm.org/mailman/listinfo/triangulo-pm > http://mail.pm.org/pipermail/triangulo-pm/ > >