在本機安裝 Perl

學習如何在本機安裝 Perl,好在自己的電腦上解 Exercism 的練習


Perl 版本注意事項

這個 track 以 Perl 最新的穩定版本為目標。 也可以使用較舊版本的 Perl,但可能需要調整提供的 stub 檔案以維持相容性。 如果你無法使用 stub 檔案中指定的版本,建議把 use v5.XX; 換成以下程式碼:

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

如果 stub 檔案中有 use experimental qw<class>;,而你使用的 Perl 版本不支援,你可以把它改成 use Feature::Compat::Class;,或改用其他的物件導向系統,例如 Moo。

Unix/Linux/Mac OSX

Perl 很可能已經安裝好了,不過未必是最新版本。 執行 perl -v 就能查看你目前使用的版本。 如果你想使用更新的版本,請參考「其他選項」一節。

如果你使用的是 Fedora/Red Hat/CentOS,有些核心模組並不會隨 Perl 一起安裝。 請使用 yum install perl-core 指令來安裝它們。

Windows

Strawberry Perl:一套 100% 開放原始碼的 Windows 版 Perl,和其他平台上的 Perl 完全相同; 包括可以直接使用 CPAN 的模組,不需要二進位套件。

你可以直接從網站安裝,或使用 chocolatey 套件管理員。

其他選項

  • asdf: 一套版本管理工具,可以安裝多種語言,包括 Perl,並以社群外掛程式的形式提供。
  • perlbrew: 一套用來管理 $HOME 目錄下多個 Perl 安裝的工具。 它們是完全獨立的 Perl 宇宙。
  • plenv: 會在你的家目錄底下安裝 Perl,讓你可以在本機安裝模組,也能在 shell 中切換到任意 Perl 版本。
  • ActivePerl Community Edition: 一套免費、可直接安裝的 Perl 發行版,支援 Windows、Linux 與 Mac OS X,專為社群開發者或不屬於商業關鍵任務的開放原始碼專案所設計。

安裝必要的模組

如果你使用的 Perl 版本比 5.40 舊,就必須安裝 Test2::V0 測試套件。 此外,針對 OOP 練習,你還需要安裝 Feature::Compat::Class 或其他的物件導向系統。 請依照以下說明進行設定(如果你已經熟悉 Perl,也可以直接使用自己慣用的模組安裝工具):

local::lib

  • 請確認 exercism CLI 已經安裝並設定完成。 執行 exercism workspace 應該會顯示正確的路徑。

  • 下載 cpm 模組安裝工具,並用它把自己、 local::lib、Test2::V0 與 Feature::Compat::Class 安裝到你的 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
  • 執行 local::lib,把你的環境設定成使用安裝在 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

上述指令所做的環境變更不會保留下來,只要你重新啟動 shell,就得再執行一次。 如果你希望每次都能自動設定好環境,請在你的 .bashrc(或 *nix 的對應檔案)或 PowerShell_profile.ps1 中加入上述指令。

local::lib 的說明文件請見這裡。

作業系統套件

或者,你的作業系統的套件管理員可能也提供了 Test2 Suite 套件可供安裝。 可用的選項包括: