Autor: Biblioteca do TI | Publicado: 2011-07-25T08:48:00-07:00

14/11/2010Perl ( linguagem de programação ) Perl é uma linguagem de programação estável e multiplataforma, usada em aplicações de missão crítica em todos os setores, sendo destacado o seu uso no desenvolvimento web de todos os tipos. Permite a criação de programas em ambientes UNIX, MSDOS, Windows, Macintosh, OS/2 e outros sistemas operacionais. Além de ser muito utilizada para programação de formulários www e em tarefas administrativas de sistemas UNIX - onde a linguagem nasceu e se desenvolveu - possui funções muito eficientes para manipulação de textos.
Perl é uma das linguagens preferidas por administradores de sistema e é especialmente versátil no processamento de cadeias (strings), manipulação de texto e no pattern matching implementado através de expressões regulares, além de ser bastante adequada para o desenvolvimento de projetos utilizando uma metodologia ágil.
A linguagem Perl já foi portada para mais de 100 diferentes plataformas e é bastante usada em desenvolvimento web, finanças e bioinformática.&nbsp;OrigemCriada por Larry Wall em dezembro de 1987, a origem do Perl remonta ao shell scripting, AWK e linguagem C, estando disponível para praticamente todos os sistemas operacionais, embora seja usado mais comumente em sistemas Unix e compatíveis.
Originalmente, o nome foi posto por Larry Wall em referência à Parábola da Pérola, de Mateus 13 (a grafia foi mudada de "Pearl" para "Perl" por já ter sido registrada por outra linguagem de programação). Algumas possíveis expansões foram posteriormente propostas, como Practical Extraction and Report Language e Pathologically Eclectic Rubbish Lister, este último tendo sido proposto pelo próprio Larry Wall, conhecido por sua personalidade sarcástica e criativa.
Características da linguagem

Atractor de Lorenz calculado com octave e convertido para SVG utilizando um script PerlNo geral, a sintaxe de um programa em Perl se parece muito com a de um programa em C: existem variáveis, expressões, atribuições, blocos de código delimitados, estruturas de controle e sub-rotinas.
Além disso, Perl foi bastante influenciado pelas linguagens de shell script: todas as variáveis escalares são precedidas por um cifrão ($). Essa marcação permite identificar perfeitamente as variáveis num programa, onde quer que elas estejam. Um dos melhores exemplos da utilidade desse recurso é a interpolação de variáveis diretamente no conteúdo de strings. Perl também possui muitas funções integradas para tarefas comuns como ordenação e acesso de arquivos em disco.
Perl pega emprestado as listas de Lisp, as arrays associativas (tabelas hash) de awk e as expressões regulares de sed. Isso tudo simplifica e facilita qualquer forma de interpretação e tratamentos de textos e dados em geral.
A linguagem suporta estruturas de dados arbitrariamente complexas. Ela também possui recursos vindos da programação funcional (as funções são vistas como um outro valor qualquer para uma subrotina, por exemplo) e um modelo de programação orientada a objetos. Perl também possui variáveis com escopo léxico, que tornam mais fácil a escrita de código mais robusto e modularizado.
Todas as versões de Perl possuem gerenciamento de memória automático e tipagem dinâmica. Os tipos e necessidades de cada objeto de dados no programa são determinados automaticamente; memória é alocada ou liberada de acordo com o necessário. A conversão entre tipos de variáveis é feita automaticamente em tempo de execução e conversões ilegais são erros fatais.
&nbsp;ResumoPerl reune as melhores características de linguagens como C, awk, sed, sh, e BASIC, entre outras. 
Sua interface de integração com base de dados (DBI) suporta muitos bancos de dados, incluindo Oracle, Sybase, PostgreSQL, MySQL e outros. 
Perl tem módulos para trabalhar com HTML, XML, e outras linguagens de markup. 
Perl suporta Unicode. 
Perl permite programação procedural e orientada a objetos. 
Perl pode acessar bibliotecas externas em C/C++ através de XS ou SWIG. 
Perl é extensível. Existem milhares de módulos disponíveis no Comprehensive Perl Archive Network (CPAN). 
O interpretador Perl pode ser embutido em outros sistemas. 



&nbsp;FatosPerl é um software livre, disponível sob a Licença Artística ou a GNU General Public License (GPL); 
Perl 1.0 foi lançada na usenet alt.comp.sources em 1987; 
Possui mais de 18 mil módulos disponíveis na CPAN para as mais diversas finalidades; 
Tem como lema: "There's More Than One Way To Do It" (TMTOWTDI); 
Sua atual versão estável é 5.10.0. 
&nbsp;Perl e a World Wide WebPerl é conhecida como "a fita adesiva da Internet". 
O módulo Perl CGI.pm, parte da distribuição padrão de Perl, faz com que a manipulação de formulários HTML seja muito simples. 
Perl pode manipular dados encriptados, incluindo transações de comércio eletrônico. 
Perl pode ser embutido em servidores web para aumentar a velocidade de processamento em até 2000%. 
mod perl permite que o servidor web Apache possa interpretar código Perl diretamente. 
O pacote DBI do Perl faz com que a integração com banco de dados seja muito simples. 
&nbsp;Tipos de dadosO Perl tem uma série de tipos de dados fundamentais, porém é considerada uma linguagem não-tipada, ou seja, as variáveis não são restringidas a usar um único tipo. Os mais utilizados são: escalar, vetor (array), hash (vetor associativo), handle de um arquivo e sub-rotinas.Escalar 
Um escalar é um valor único, que pode ser um número, uma string ou uma referência. É declarada com um '$', como:$num$joe$pointerArray 
Um array é um conjunto sequencial ordenado de escalares. O índice inicial de uma variável array é zero (0). É declarada com um '@', como:@v@list@variableHash 
Um hash, ou array associativo, é um mapeamento (ou seja, chaves de referências) de strings para escalares. Representa uma coleção de pares de chave/valor. São declarados com um '%', como:%people%x%this_is_a_hashHandle 
Um handle de um arquivo é um mapeamento para um arquivo, dispositivo ou pipe, que é aberto para leitura, escrita, ou ambos.Sub-rotina 
A sub-rotina é um trecho de código que pode ser executado, para o qual podem ser passados argumentos, e do qual podem ser recebidos resultados.
Exemplos de códigoA primeira linha de um código em Perl deve sempre começar com o shebang:#!/usr/bin/perl
&nbsp;Programa Olá Mundo!#!/usr/bin/perl print "Olá, Mundo!\n";
&nbsp;Comentário
# Isto é um comentário em PerlNote o ponto-e-vírgua no final de cada expressão. Assim como em C e c++, Perl exige que o usemos para indicar o final de uma expressão. A última linha é a que apaga o arquivo. unlink equivale a 'rm' e $0 é uma referência simples ao arquivo que está sendo executado.[1]
&nbsp;Expressão regular – Filtro
O programa a seguir lê um texto e substitui qualquer ocorrência da string "foo" por "bar", imprimindo a linha transformada na tela:while(&lt;&gt;) {&nbsp;&nbsp;&nbsp; s/foo/bar/g;&nbsp;&nbsp;&nbsp; print;}É possível obter o mesmo resultado com uma única linha (um "one-liner"):perl -pi -e 's/foo/bar/g' arquivo.txtDe facto, é comum a ocorrência de problemas que exigem dezenas de linhas em outras linguagens de programação mas que podem ser resolvidos com uma única linha de código em Perl, especialmente na área de ETL.
&nbsp;Estruturas de controlePerl tem as estruturas básicas esperadas em qualquer linguagem de programação:if 
while 
for 
until 
Perl tira boas idéias de linguagens naturais, como a possibilidade de inverter a ordem dos elementos em uma frase. Por exemplo:if ($DEBUG) {&nbsp; print "ouch!";}Pode ser reescrita como:print "ouch!" if $DEBUG;
&nbsp;Módulos e frameworksPerl conseguiu reunir módulos, classes, scripts e frameworks desenvolvidos pela comunidade em um só lugar, este lugar chama-se CPAN, repositório onde encontra-se quase tudo já desenvolvido para a linguagem:Catalyst (software) - Framework MVC para aplicações Web. 
DBIx::Class - Modelo de mapeamento Objeto Relacional. 
Template Toolkit - Sistema de processamento de templates. 
WWW::Mechanize - Simula um navegaror Web em um objeto Perl. 
POE - Framework para aplicações multitarefa e em rede portáveis. 
CompiladoresSe você está num sistema Linux (ou a maioria dos sistemas UNIX, incluindo Mac Os X), provavelmente já há uma instalação do compilador Perl incluída no seu sistema. Digite o seguinte comando no terminal para descobrir qual versão você tem instalada[2]:perl -v
&nbsp;AplicaçõesTWiki - Sistema Wiki de escrita de conteúdo colaborativo. 
RT - Sistema de processamento de Tickets. 
Apache Spam Assassin - Sistema extensível de filtro de Spam em email . 
dvd::rip - Programa para cópias de DVD. 
AWStats - "Advanced Web Statistics" (AWStats) é um poderoso sistema de análise de logs de servidores Web e de geração de estatísticas. 
&nbsp;ComunidadeUm dos pontos mais fortes da linguagem Perl é a comunidade de usuários em todo o mundo. Segundo a tradição internacional, esses grupos são denominados Perl Mongers.
Um grande ponto de encontro da comunidade é o YAPC, YAPCs são encontros promovidos pela comunidade para discutir coisas sobre Perl, os encontros podem ter caráter regional ou nacional, no Brasil ocorre uma vez por ano o YAPC::Brasil "Encontro Brasileiro de Programadores Perl". Em 2009 o YAPC::Brasil aconteceu de 29 de outubro a 1 de novembro em Niteróio, Rio de Janeiro[3]. Em 2010 o evento acontecerá de 25 a 31 de outubro em Fortaleza, Ceará[4].


Referências↑ http://www.gacetadelinux.com/pr/lg/issue61/okopnik.html 
↑ http://www.perl.org/get.html 
↑ Site do YAPC::Brasil 2009 
↑ Site do YAPC::Brasil 2010 
Postado por Sorisman em seu antigo blog