Instalar o Perl localmente

Aprende a instalar o Perl localmente para resolveres os exercícios do Exercism na tua própria máquina


Notas sobre a versão do Perl

O track tem como alvo a versão estável mais recente do Perl. É possível usar versões mais antigas do Perl, mas pode ser necessário ajustar os ficheiros stub fornecidos para garantir a compatibilidade. Se não conseguires usar a versão indicada nos ficheiros stub, recomenda-se que substituas use v5.XX; pelo seguinte código:

use strict;
use warnings;
use feature qw<signatures>;

Se o ficheiro stub contiver use experimental qw<class>; e a versão do Perl que estás a usar não o suportar, podes substituí-lo por use Feature::Compat::Class; ou usar um sistema alternativo de orientação a objetos, por exemplo, o Moo.

Unix/Linux/Mac OSX

O Perl já deve estar instalado, mas é possível que não seja a versão mais recente. Executa perl -v para veres que versão tens. Se quiseres usar uma versão mais recente, consulta a secção «Outras opções».

Se usares Fedora/Red Hat/CentOS, alguns módulos base não são incluídos com o Perl. Usa o comando yum install perl-core para os instalar.

Windows

Strawberry Perl: um Perl 100% open source para Windows, exatamente igual ao Perl em qualquer outro sítio; isto inclui usar módulos do CPAN, sem precisares de pacotes binários.

Podes instalá-lo diretamente a partir do sítio ou usar o gestor de pacotes chocolatey.

Outras opções

  • asdf: Um gestor de versões de ferramentas que permite instalar várias linguagens, incluindo o Perl, disponível como plugin da comunidade.
  • perlbrew: Uma ferramenta para gerir várias instalações do Perl no teu diretório $HOME. São universos Perl completamente isolados.
  • plenv: Instala versões do Perl no teu diretório pessoal, permite-te instalar módulos localmente e alternar entre versões arbitrárias do Perl na tua shell.
  • ActivePerl Community Edition: Uma distribuição do Perl gratuita e pronta a instalar para Windows, Linux e Mac OS X, pensada para programadores da comunidade ou projetos open source que não sejam críticos para o negócio nem para a missão.

Instalar os módulos necessários

Se estiveres a usar uma versão do Perl anterior à 5.40, terás de instalar o conjunto de testes Test2::V0. Também terás de instalar o Feature::Compat::Class ou um sistema alternativo de orientação a objetos para os exercícios de programação orientada a objetos (OO). Segue as instruções abaixo para o configurar (ou usa o teu instalador de módulos preferido, se já estás à vontade com o Perl):

local::lib

  • Confirma que a CLI do Exercism já está instalada e configurada. Executar exercism workspace deve mostrar-te o caminho adequado.

  • Descarrega o instalador de módulos cpm e usa-o para se instalar a si próprio, bem como o local::lib, o Test2::V0 e o Feature::Compat::Class, no teu diretório exercism/perl5:

# *nix
curl -sL --compressed https://git.io/cpm | \
  perl - install -L $(exercism workspace)/perl5 App::cpm local::lib Test2::V0 Feature::Compat::Class

# Microsoft PowerShell
(Invoke-WebRequest -UseBasicParsing 'https://git.io/cpm').Content |
  perl - install -L "$(exercism workspace)/perl5" App::cpm local::lib Test2::V0 Feature::Compat::Class
  • Executa o local::lib para configurar o teu ambiente de modo a usar os módulos que instalaste em exercism/perl5:
# *nix
eval $(perl -I$(exercism workspace)/perl5/lib/perl5 -Mlocal::lib=$(exercism workspace)/perl5)

# Microsoft PowerShell
perl -I"$(exercism workspace)/perl5/lib/perl5"
  -M"local::lib=--shelltype=powershell,$(exercism workspace)/perl5" | Invoke-Expression

As alterações ao ambiente feitas pelo comando acima não são permanentes e terás de o executar novamente se reiniciares a shell. Se quiseres que o teu ambiente seja configurado automaticamente de cada vez, acrescenta o comando acima ao teu .bashrc (ou equivalente em *nix) ou ao teu PowerShell_profile.ps1.

A documentação do local::lib está disponível aqui.

Pacotes do sistema operativo

Em alternativa, o gestor de pacotes do teu sistema operativo pode ter um pacote do Test2 Suite disponível para instalar. Entre as opções disponíveis estão: