Tabela de conteúdos
perl
Apesar de não padronizado , o interpretador perl possui uma longa tradição de distribuição conjunta com o sistema UNIX, tendo depois extrapolado para outros sistemas.
Sua inspiração parte de outros utilitários como sed, awk e o próprio Shell do UNIX, além de ter importado ideias da linguagem C, e portanto acaba misturando uma dinâmica para processamento de texto com interação com o sistema operacional (criar e remover arquivos ou diretórios, interagir com soquetes e até mesmo gerenciar processos).
Usa-se o termo perl em referência ao interpretador propriamente, que está disponível como comando do sistema oepracional, enquanto o termo Perl é usado em referência à linguagem utilizada pelo interpretador para executar os comandos. Como estamos no contexto de utilitários, o foco deste artigo será o interpretador perl. Para mais informações sobre a linguagem Perl consulte a seção referente no contexto de programação (prog).
Usos
perl é um utilitário de linha de comando que ficou bastante conhecido pelo termo one-liner (de uma linha), em referência aos diversos usos versáteis que podem ser feitos do interpretador com apenas uma linha de comando.
Apesar disso, é comum também o uso do interpretador para apenas acionar um programa armazenado em um ou mais arquivos. Programa esse que pode ser um simples script de poucas linhas ou uma aplicação complexa distribuída em vários módulos. Seja como for, a linguagem Perl é utilizada para elaborar esses programas.
Para explorar os recursos do interpretador propriamente, nosso foco nesse documento será principalmente o uso da linha de comando, porém em algumas ocasiões vamos demonstrar o uso de programas também.
É muito comum o uso de perl para realizar transformações sobre conjuntos de dados, que podem ser lidos e gravados em arquivos, ou obtidos/repassados para outros programas disponíveis no sistema, ou ainda de/para sistemas remotos.
Os recursos para processamento de texto presentes na linguagem Perl (e portanto acessíveis pelo interpretador perl) são muito ricos, sobretudo se considerarmos o motor de expressões regulares e o suporte a diferentes codificações de texto. Sistemas Web em particular se beneficiam bastante dessa característica.
Além de ser bom para trabalhar com texto, perl também pode ser usado para interagir com sistemas de arquivos, processos externos e com soquetes, e possui nativamente módulos para lidar com diversos formatos de arquivos e algoritmos comuns (como de compressão, por exemplo) sendo também útil para funções de administração de sistemas.
E ainda é comum também o uso de perl para elaborar roteiros de testes de outros programas, devido ao seu amplo suporte a módulos de teste e ao protocolo TAP.
Noções básicas
Para aprender a usar perl, vamos começar detalhando alguns conceitos comuns da sua terminologia:
- Campo
O conteúdo de cada registro lido/escrito pelo interpretador pode ser subdividido por algum delimitador. Nesse caso, o resultado dessa divisão é uma lista onde cada item é um campo.
- Expressão regular
Vide expressões regulares. perl obviamente utiliza o padrão Perl.
- Registro
Tanto o que é lido pelo interpretador (entrada) quanto o que é escrito (saída) é organizado como uma lista de registros. Na prática, cada registro é uma linha, mas pode-se definir outros delimitadores para o conceito de registro (inclusive nenhum delimitador, para trabalhar com conteúdo binário).
Usando perl
O interpretador perl é ultra sofisticado. Ele foi projetado para que com uma única linha de comando você consiga alavancar vários recursos da linguagem Perl, sem a necessidade de criar um script com o código equivalente.
Existem opções para definir delimitadores de campos, delimitadores de linhas, codificação dos caracteres, laços iterativos para definir ações específicas sobre cada linha, e diversas outras opções. Isso permite que você explore combinações diferentes de opções, para alcançar diferentes resultados.
Isso obviamente não significa que você não possa criar seus scripts também, e pode inclusive combiná-los com as opções de linha de comando, se preferir. Mas antes de passar para cenários mais avançados, vamos começar pelos cenários de uso mais simples.
Primeiro de tudo, é sempre bom verificar qual versão você está utilizando (utilizando a opção -v). Digite no seu terminal o seguinte comando:
$ perl -v
Será apresentado, além da versão, uma nota de direitos autorais, revelando a licença aplicável (Artística ou GPL), além de instruções sobre onde encontrar mais informações sobre Perl.
Para ver a lista completa de opções, você pode usar a opção -h (ou -?). Essas opções mostram apenas uma lista resumida, mas se quiser uma descrição mais detalhada, você pode usar o utilitário perldoc distribuído junto com perl, conforme a seguir:
$ perldoc perlrun
Este utilitário processa textos de ajuda, organizados por tópicos (sendo perlrun um dos tópicos, referente à linha de comando), e direciona para um paginador de texto (como less). Em sistemas tipo UNIX, é comum a distribuição de páginas de manual (man pages) junto com perl, portanto você provavelmente pode acessar o mesmo conteúdo com o comando a seguir.
$ man perlrun
…
Especificação
Toda a especificação (do interpretador e da linguagem) está disponível aqui.
Distribuição
…