前言
本文說明如何在系統上建置 Perl 環境。Windows 上不會預裝 Perl,故需另行安裝。Unix 上通常會預裝 Perl,但我們仍然可以視需求重新安裝另一個版本的 Perl。
安裝 Perl
Windows
Windows 不會預裝 Perl,使用者需自行安裝。
目前建議安裝由社群維護的 Strawberry Perl。因 ActiveState 改變營運方針,ActivePerl 需要登入 ActiveState Platform 才能下載安裝。這過程是不必要的。
Strawberry Perl 會附帶自己的 GCC 和常見函式庫。但也可以透過系統路經管理,用 MSYS2 提供的 C toolchain。
使用 Chocolatey 安裝 Strawberry Perl:
> choco install strawberryperl
不知何故,有時候透過 Chocolatey 會安裝失敗。這時候回頭用官方安裝程式即可。
Unix
雖然在許多 Unix 都會預裝 Perl,但筆者會建議透過 plenv 在家目錄下安裝自已所需的版本。比起用系統提供的套件,使用 plenv 可以安裝最新版本的 Perl,在安裝 Perl 套件時也不會影響到系統的檔案。
用 Git 即可安裝 plenv:
$ git clone https://github.com/tokuhirom/plenv.git ~/.plenv
將 $HOME/.plenv/bin 加入 PATH 變數。
可參考以下 shell 程式碼將 plenv 初始化:
# Init plenv
if which plenv > /dev/null;
then
eval "$(plenv init -)"
fi
建議也一併安裝 perl-build,之後可將安裝流程自動化:
$ git clone https://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/
使用符合 ANSI C 標準的 C 編譯器即可編譯 Perl 原始碼,Perl 原始碼中似乎沒有提到 Perl 額外相依什麼函式庫。在 Unix 上大部分是使用 GCC。
編譯及安裝的指令如下:
$ plenv install 5.42.2
編譯會稍微花一點點時間,在筆者的電腦上,大約是數分鐘左右。
使用 plenv versions 可檢查 plenv 中安裝的 Perl 版本:
$ plenv versions
* system (set by /home/user/.plenv/version)
5.42.2
使用 plenv global 可指定終端機下使用的 Perl 版本:
$ plenv global 5.42.2
如果某個專案需要指定 Perl 版本,可用 plenv local 來指定,在該資料夾會額外出現 .perl-version 設定檔。
由於 plenv local 的優先等級會比 plenv global 來得高,這時候該專案的 Perl 版本就會固定下來,不會受到 plenv global 的影響。參考指令如下:
$ plenv local 5.26.2
如果要移除專案中的 plenv local 設定,可參考以下指令:
$ plenv local --unset
安裝 C 和 C++ 編譯環境
有許多 Perl 延伸模組內部實際上用 C (少數用 C++) 實作,再加上 Perl 連結 (binding),如果要編譯這些延伸套件,就要安裝 C 和 C++ 編譯環境。本節針對不同平台來討論。
Windows
Windows 平台沒有預裝的 C (或 C++) 編譯器,造成每個高階語言的社群都要自已想辦法,一般都是採用 Visual C++ 或 MinGW 兩者之一。Perl 社群採用後者。
雖然 Strawberry Perl 會附帶 GCC 和一些常見函式庫,建議使用 MSYS2 所提供的 MinGW 和一些 C 函式庫。這是對應 Windows 設計上的一些議題所採取的動作。
Unix
類 Unix 系統上通常都會有 GCC 或 Clang。若沒有,安裝也相當簡單。
在 Debian/Ubuntu/Linux Mint 上安裝 GCC 及相關開發工具的指令如下:
$ sudo apt-get install build-essential
在 Red Hat/CentOS/Fedora 上安裝 GCC 及相關開發工具的指令如下:
$ sudo dnf groupinstall "Development Tools"
在 macOS 上,則裝 Command Line Tools for Xcode 即可。
安裝 Perl 社群套件 (Module)
除了內建的套件,Perl 有著豐富的社群套件,這些社群套件大大地延展了 Perl 的功能。
原本 Perl 社群用 cpan 來安裝 Perl 套件,但 cpan 在初次使用的設定較為繁複,後來出現 cpanm,這是一套新的 Perl 套件管理軟體,基本上可以取代原本的 cpan。
Windows
Strawberry 按照 Unix 社群的慣例,安裝套件時會從頭開始編譯。所以需要安裝 MSYS2 來提供 C 編譯器及相依的 C 函式庫。
使用 cpan 來安裝 Perl 套件。像是以下例子:
> cpan Moo
Unix
如果讀者有使用 plenv 管理 Perl 版本的話,只要一行指令就可以安裝 cpanm:
$ plenv install-cpanm
接著,就可以用 cpanm 安裝其他 Perl 套件:
$ cpanm Moo
支援 Perl 的編輯器 (Editor)
建議使用 VSCode,因為 VSCode 跨平台,減少重覆學習編輯器的時間,又有豐富的外掛。讀者可選用自己喜歡的編輯器。
檢查 Perl 程式碼的品質
Perl::Critic 是一個 Perl 靜態程式碼分析程式。建議平時就把程式碼分析納入開發的一環。參考以下指令安裝:
$ cpanm Perl::Critic
用 perlcritic 指令檢查程式碼:
$ perlcritic program.pl
自動撿列 Perl 程式碼
儘量不要手動排版程式碼。使用 Perl::Tidy 這類自動化工具會比較有效率。參考以下指令安裝:
$ cpanm Perl::Tidy
用 perltidy 指令自動排版程式碼:
$ perltidy program.pl
檢查 Perl 的版本號 (Version)
使用 perl --version 指令即可檢查系統上的 Perl 的版本號。像是以下實例:
> perl --version
This is perl 5, version 42, subversion 2 (v5.42.2) built for MSWin32-x64-multi-thread
Copyright 1987-2026, Larry Wall
(省略一些文字)