在本地安装 Perl

了解如何在本地安装 Perl,以便在自己的电脑上完成 Exercism 的练习


Perl 版本说明

本 track 面向 Perl 的最新稳定版本。 也可以使用较旧版本的 Perl,但为了保持兼容性,可能需要调整所提供的存根文件。 如果无法使用存根文件中指定的版本,建议把 use v5.XX; 替换为以下代码:

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

如果存根文件中包含 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 在内的多种语言,Perl 以社区插件的形式提供。
  • perlbrew: 一个用来管理 $HOME 目录下多个 Perl 安装的工具。 它们彼此是完全隔离的 Perl 环境。
  • plenv: 在你的主目录下安装多个 Perl 版本,让你可以在本地安装模块,还能在 shell 中切换到任意 Perl 版本。
  • ActivePerl Community Edition: 一个免费、可直接安装的 Perl 发行版,适用于 Windows、Linux 和 Mac OS X,面向社区开发者,以及那些不属于关键业务或关键任务的开源项目。

安装必要的模块

如果你使用的 Perl 版本低于 5.40,就需要安装 Test2::V0 测试套件。 对于面向对象练习,你还需要安装 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 软件包。 可选的有: