Instalando o Perl localmente

Aprenda a instalar o Perl localmente para resolver os exercícios do Exercism na sua própria máquina


Notas sobre a versão do Perl

A trilha usa como base a versão estável mais recente do Perl. É possível usar versões mais antigas do Perl, mas talvez seja preciso ajustar os arquivos stub fornecidos para garantir a compatibilidade. Se você não puder usar a versão especificada nos arquivos stub, recomendamos substituir use v5.XX; pelo seguinte código:

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

Se o arquivo stub contiver use experimental qw<class>; e a versão do Perl que você usa não der suporte a isso, você pode substituir por use Feature::Compat::Class; ou usar um sistema alternativo de orientação a objetos, por exemplo, Moo.

Unix/Linux/Mac OSX

Provavelmente o Perl já está instalado, mas é possível que não seja a versão mais recente. Rode perl -v para ver qual versão você tem. Se você quiser usar uma versão mais recente, consulte a seção 'Outras opções'.

Se você usa Fedora/Red Hat/CentOS, alguns módulos principais não vêm incluídos com o Perl. Use o comando yum install perl-core para instalá-los.

Windows

Strawberry Perl: um Perl 100% de código aberto para Windows, exatamente igual ao Perl em qualquer outro lugar; isso inclui usar módulos do CPAN, sem precisar de pacotes binários.

Você pode instalar direto do site ou usar o gerenciador de pacotes chocolatey.

Outras opções

  • asdf: Um gerenciador de versões de ferramentas que permite instalar várias linguagens, incluindo o Perl, disponível como plugin da comunidade.
  • perlbrew: Uma ferramenta para gerenciar várias instalações do Perl no seu diretório $HOME. São universos Perl completamente isolados.
  • plenv: Instala versões do Perl no seu diretório home e permite instalar módulos localmente, além de trocar para qualquer versão do Perl no seu shell.
  • ActivePerl Community Edition: Uma distribuição Perl gratuita e pronta para instalar para Windows, Linux e Mac OS X, pensada para desenvolvedores da comunidade ou projetos de código aberto que não são críticos para o negócio ou para a missão.

Instalando os módulos necessários

Se você usa uma versão do Perl anterior à 5.40, vai precisar instalar o pacote de testes Test2::V0. Também vai precisar instalar o Feature::Compat::Class ou um sistema alternativo de orientação a objetos para os exercícios de orientação a objetos. Siga as instruções a seguir para configurar isso (ou fique à vontade para usar seu instalador de módulos preferido, se você já conhece o Perl):

local::lib

  • Certifique-se de que a CLI do Exercism já esteja instalada e configurada. Rodar exercism workspace deve mostrar o caminho adequado.

  • Baixe o instalador de módulos cpm e use-o para instalar ele mesmo, o local::lib, o Test2::V0 e o Feature::Compat::Class no seu 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
  • Rode o local::lib para configurar seu ambiente para usar os módulos que você instalou 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 mudanças de ambiente feitas pelo comando acima não são permanentes e precisarão ser executadas de novo se você reiniciar o shell. Se você quiser que seu ambiente seja configurado automaticamente sempre, modifique seu .bashrc (ou o equivalente em *nix) ou seu PowerShell_profile.ps1 para incluir o comando acima.

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

Pacotes do sistema operacional

Como alternativa, o gerenciador de pacotes do seu sistema operacional pode ter um pacote do Test2 Suite disponível para instalação. Entre as opções disponíveis estão: