Perl é uma linguagem multiparadigma, multiplataforma e extremamente flexível, que vem instalada por padrão em todo sistema baseado em Unix, ou seja, Linux e Mac OSX.
Esses sistemas dependem fortemente da linguagem para tarefas internas e algumas vezes nem dão boot se as versões corretas de alguns módulos não estiverem disponíveis.
Portanto a melhor alternativa para desenvolver em Perl é configurar um ambiente de desenvolvimento à parte, com uma versão da linguagem separada da que o sistema utiliza.
Historicamente tivemos várias formas de fazer isso mas hoje a mais indicada é compilar e instalar a linguagem num diretório local do usuário com a ferramenta plenv.
Recomendo visitar os site do projeto para obter as instruções mais atualizadas. Abaixo reproduzo o passo a passo traduzido pra quem tiver dificuldade com o inglês.
Antes de começar
Como vamos baixar, compilar e instalar tanto a linguagem Perl como os módulos a partir de seus códigos-fonte, você vai precisar ter as ferramentas de desenvolvimento padrão instaladas.
No ubuntu isso é feito instalando o pacote build-essential
.
Além disso, você também vai precisar do git
instalado.
user@host$ sudo apt update && sudo apt install -y build-essential git
Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
... várias linhas depois...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
user@host$
Instalando o plenv
O processo de instalação consiste basicamente em baixar dois repositórios via git e configurar as variáveis de ambiente corretas para encontrá-los.
Primeiramente baixe o repositório do próprio plenv:
user@host$ git clone https://github.com/tokuhirom/plenv.git ~/.plenv
Esse comando vai clonar o repositório do plenv pra dentro do diretório ~/.plenv
, ou seja, um diretório escondido no seu diretório $HOME
.
Em seguida você deve adicionar dois comandos na configuração do seu terminal. Um que adiciona o diretório do plenv ao seu $PATH
, para que os comandos dele fiquem disponíveis. O outro é um comando para inicializar o plenv toda vez que você abrir um novo terminal:
user@host$ echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.bash_profile user@host$ echo 'eval "$(plenv init -)"' >> ~/.bash_profile
Note que o arquivo de configuração é diferente dependendo da shell
que você está usando. No meu caso, como eu uso o zsh
o meu arquivo é o ~/.zshrc
. Para saber qual a shell que você está utilizando, verifique a variável $SHELL
no seu terminal:
user@host$ echo $SHELL
/bin/zsh
user@host$
Reinicie o terminal e a configuração do plenv estará quase pronta.
Ainda falta instalar o perl-build, que adiciona o comando plenv install
, que facilita a instalação de novas versões da linguagem.
user@host$ git clone https://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/
Por último atualize os executáveis. Isso precisa ser feito toda vez que você instalar uma nova versão do Perl ou qualquer módulo que adicione um comando como o cpanm, por exemplo:
user@host$ plenv rehash
Principais comandos
O plenv possui muitos comandos interessantes que você pode utilizar para executar versões específicas da linguagem para cada aplicação, configurar uma versão diferente por diretório e por aí vai. Abaixo eu listo os principais comandos que eu utilizo no meu dia a dia.
Listar todas as versões disponíveis para instalar
user@host$ plenv install --list
Available versions:
5.33.1
5.33.0
5.32.0
... muitas linhas depois...
5.6.0
5.5.670
5.003_13
user@host$
Instalar uma nova versão da linguagem
user@host$ plenv install 5.32.0
Listar versões instaladas
user@host$ plenv versions
system
5.30.1
* 5.30.2 (set by /home/blabos/.plenv/version)
user@host$
Configurar uma versão como padrão
user@host$ plenv global 5.30.2
Bonus point: cpanm e carton
Duas ferramentas que você vai utilizar muito são o cpanm
, que é o instalador de módulos Perl, e o carton
, que é o gerenciador de dependências padrão que a gente usa nos nossos projetos.
O plenv possui um comando pra agilizar a instalação do cpanm:
user@host$ plenv install-cpanm
Com o cpanm instalado, instale o carton com o seguinte comando:
user@host$ cpanm Carton
Note que os módulos instalados desta maneira são completamente independentes dos módulos instalados por outra versão. Se você instalar e ativar outra versão da linguagem, vai precisar instalar os módulos novamente.
Isso acontece porque alguns módulos Perl tem partes escritas em linguagem C
que precisam ser compiladas junto com a versão específica da linguagem que eles vão utilizar.
Lembre-se também de atualizar os executáveis repetindo o comando:
user@host$ plenv rehash