내 컴퓨터에 Perl을 설치해서 Exercism의 연습 문제를 푸는 방법을 배워요
이 트랙은 Perl의 최신 안정 버전을 기준으로 해요.
예전 버전의 Perl을 사용하는 것도 가능하지만, 호환성을 위해 제공된 스텁 파일을 조금 수정해야 할 수도 있어요.
스텁 파일에 명시된 버전을 사용할 수 없다면, use v5.XX;를 다음 코드로 바꾸는 걸 권장해요:
use strict;
use warnings;
use feature qw<signatures>;
스텁 파일에 use experimental qw<class>;가 있는데 사용 중인 Perl 버전이 이를 지원하지 않는다면, 이 부분을 use Feature::Compat::Class;로 대체하거나 다른 객체 지향 시스템, 예를 들어 Moo를 사용해도 돼요.
Perl은 아마 이미 설치되어 있을 거예요. 다만 최신 버전이 아닐 수 있어요.
perl -v를 실행하면 어떤 버전을 사용 중인지 확인할 수 있어요.
더 최신 버전을 쓰고 싶다면 '기타 옵션' 섹션을 확인해 봐요.
Fedora/Red Hat/CentOS를 사용한다면 일부 핵심 모듈이 Perl에 포함되어 있지 않아요.
yum install perl-core 명령으로 설치하면 돼요.
Strawberry Perl: 다른 곳의 Perl과 똑같은, 100% 오픈 소스 Windows용 Perl이에요. 바이너리 패키지 없이 CPAN의 모듈을 사용할 수 있어요.
사이트에서 직접 설치하거나 chocolatey 패키지 관리자를 사용할 수 있어요.
$HOME 디렉터리에서 여러 Perl 설치를 관리하는 도구예요.
각 설치는 완전히 분리된 Perl 세계예요.Perl 5.40보다 오래된 버전을 사용한다면 Test2::V0 테스트 번들을 설치해야 해요.
또한 OOP 연습 문제를 위해서는 Feature::Compat::Class나 다른 객체 지향 시스템도 설치해야 해요.
다음 안내에 따라 설정해 봐요(이미 Perl에 익숙하다면 평소 쓰던 모듈 설치 프로그램을 사용해도 좋아요):
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
위 명령으로 바뀐 환경은 유지되지 않아서, 셸을 다시 시작하면 다시 실행해야 해요.
매번 환경이 자동으로 설정되게 하고 싶다면 .bashrc(또는 *nix에서 이에 해당하는 파일)나 PowerShell_profile.ps1에 위 명령을 추가하면 돼요.
local::lib 문서는 여기에서 볼 수 있어요.
또는 사용 중인 OS의 패키지 관리자에 설치할 수 있는 Test2 Suite 패키지가 있을 수 있어요. 사용할 수 있는 옵션은 다음과 같아요: