Perl

Origem: Wikipédia, a enciclopédia livre.

(Redirecionado de PERL)

Nota: Para outros significados de Perl, ver Perl (desambiguação).

Perl

Paradigma Multiparadigma
Surgido em 1987
Última versão 5.10.0 ()
Criado por Larry Wall
Estilo de tipagem: Dinâmica
Compiladores
Dialetos:
Influenciada por AWK, BASIC, BASIC-PLUS, C, C++, Lisp, Pascal, sed, Shell Unix
Influenciou Python, PHP, Ruby, ECMAScript
Licença: GNU General Public License, Licença Artística
Página oficial http://www.perl.org/
Portal A Wikipédia possui o(s) portal(is):
Portal das tecnologias de informação
{{{Portal2}}}
{{{Portal3}}}
{{{Portal4}}}
{{{Portal5}}}

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 de aplicações 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.

Índice

[editar] Origem

Criada 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.

Perl é uma das linguagens preferidas por administradores de sistema e autores de aplicações para a web. É 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 permitir tempos de desenvolvimento curtos.

A linguagem Perl já foi portada para mais de 100 diferentes plataformas e é bastante usada em desenvolvimento web, finanças e bioinformática.

[editar] Características da linguagem

No 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.

[editar] Resumo

  • Perl tira 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.

[editar] Fatos

  • Perl é uma linguagem estável e multiplataforma;
  • É usada em aplicações de missão crítica em todos os setores;
  • Perl é um software livre, disponível sob a Licença Artística ou a GNU General Public License (GPL);
  • Perl foi criada por Larry Wall;
  • 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.

[editar] Perl e a World Wide Web

  • Perl é uma das linguagens mais populares de programação web, devido à suas capacidades de manipulação de textos e rápido ciclo de desenvolvimento.
  • Perl é 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.

[editar] Tipos de dados

O Perl tem uma série de tipos de dados fundamentais, os mais utilizados são: escalar, vetor (array), hash (vetor associativo), handle de um arquivo e sub-rotinas.

  • Um escalar é um valor único, que pode ser um número, uma string ou uma referência.
  • Um array é um conjunto ordenado de escalares. O índice inicial de uma variável array é zero (0).
  • Um hash, ou array associativo, é um mapeamento de strings para escalares. Representa uma coleção de pares de chave/valor.
  • Um handle de um arquivo é um mapeamento para um arquivo, dispositivo ou pipe, que é aberto para leitura, escrita, ou ambos.
  • 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.

[editar] Exemplos de código

[editar] Olá , mundo!

print "Olá, mundo!";

[editar] Comentário

# Isto é um comentário em Perl

[editar] 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(<>) {
    s/foo/bar/g;
    print;
}

É possível obter o mesmo resultado com uma única linha (um "one-liner"):

perl -pi -e 's/foo/bar/g' arquivo.txt

De 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.

[editar] Estruturas de controle

Perl 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) {
  print "ouch!";
}

Pode ser reescrita como:

print "ouch!" if $DEBUG;

[editar] Módulos e frameworks

Perl 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:

[editar] Aplicações

  • TWiki - 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.

[editar] Comunidade

Este artigo ou secção não cita as suas fontes ou referências (desde Fevereiro de 2008)
Ajude a melhorar este artigo providenciando fontes fiáveis e independentes, inserindo-as no corpo do texto ou em notas de rodapé. Encontre fontes: Googlenews, books, scholar, Scirus

Um dos pontos mais fortes da linguagem Perl é a comunidade de usuários em todo o mundo, sempre disposta a ajudar e tirar dúvidas de usuários iniciantes.

Segundo a tradição internacional, esses grupos são denominados Perl Mongers.

A comunidade brasileira é reconhecida internacionalmente com uma das comunidades mais ativas do mundo[carece de fontes?]. Alguns fãs mais fervorosos da linguagem a citam no meio acadêmico como a "Gloriosa Linguagem Perl".

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" e há 2 anos tem ocorrido também o YAPC: SA "Encontro Sulamericano de Desenvolvedores Perl" abrangendo além do Brasil países de toda América do Sul. Estes encontros estão sendo constantemente realizados no Brasil e no mundo.

[editar] Ligações externas

Ferramentas pessoais
Criar um livro