Perl 배포판에 딸려 오는 유틸리티
Perl 배포판에 딸려 오는 유틸리티 (perlutil)
Perl을 설치하면 인터프리터만 오는 게 아니에요. 배포판과 함께 수많은 유틸리티가 시스템에 설치돼요. 이 문서는 그 유틸리티들이 무엇이고 언제 쓰는지, 각각의 문서는 어디를 보면 되는지 한 번에 정리해 주는 목록이에요.
본문
설명 (DESCRIPTION)
Perl 인터프리터와 함께, Perl 배포판은 다양한 유틸리티를 시스템에 설치해요. 설치 과정의 일부로 Perl 배포판 자체가 사용하는 유틸리티도 몇 개 있어요. 이 문서는 이 유틸리티들을 전부 나열하고, 각각이 무엇을 위한 것인지 설명하며, 해당 모듈의 문서가 있다면 그 위치를 알려줘요.
유틸리티 목록 (LIST OF UTILITIES)
문서 (Documentation)
- perldoc — Perl 문서에 접근하는 핵심 인터페이스예요. 지금 이 글을 읽고 있다면 이미 찾았을 가능성이 높죠.
perldoc은 현재 디렉터리의 어떤 파일이든, 시스템에 설치된 어떤 Perl 모듈이든, 지금 보는 문서 같은 표준 문서 페이지든 그 문서를 꺼내서 형식을 갖춰 보여줘요. 이 문서에서 설명하는 유틸리티에 대한 정보를 얻으려면perldoc <이름>을 쓰면 돼요. - pod2man / pod2text — 터미널에서 실행하면
perldoc은 보통pod2man을 호출해 POD(Plain Old Documentation, 설명은 perlpod 참고)를 manpage로 번역하고, 이어서man으로 표시해요.man이 없으면pod2text를 대신 쓰고 출력을 여러분이 좋아하는 페이저로 넘겨요. - pod2html — 위 두 개 말고 변환기가 하나 더 있어요.
pod2html은 POD로부터 HTML 페이지를 만들어요. - pod2usage — 여기 설명된 유틸리티의 사용법만 알고 싶을 때,
pod2usage는 "USAGE" 섹션만 추출해 줘요. 일부 유틸리티는-help로 호출하면 스스로pod2usage를 불러요. - podchecker — 여러분이 직접 POD로 문서를 작성한다면,
podchecker가 마크업의 오류를 찾아줘요. - splain — perldiag에 대한 인터페이스예요. 오류 메시지를 붙여 넣으면 그 의미를 설명해 줘요.
- roffitall — 이 유틸리티는 시스템에 설치되지 않고 Perl 소스 키트의
pod/디렉터리에 있어요. 배포판의 모든 문서를 roff 형식으로 변환해 전체를 조판된 PostScript나 텍스트 파일로 만들어요.
변환기 (Converters)
- pl2pm — 옛날 프로그램을 더 현대적인 Perl로 옮길 수 있게, Perl 4 스타일 라이브러리를 새 스타일의 Perl 5 모듈로 변환하는 걸 도와줘요.
관리 (Administration)
- libnetcfg — libnet 구성을 보여주고 바꾸려면
libnetcfg명령을 실행해요. - perlivp — Perl 소스 빌드 시점에 설정되어, 빌드했던 Perl 버전을 검사하는 프로그램이에요.
make install(또는 플랫폼에 맞는 절차)을 실행한 뒤 perl과 라이브러리가 올바르게 설치됐는지 확인할 때 써요.
개발 (Development)
Perl 프로그램을 개발하고, 특히 C로 Perl을 확장하는 데 도움을 주는 유틸리티 모음이에요.
- perlbug — 예전에는 perl 인터프리터 자체나 표준 라이브러리 모듈의 버그를 개발자에게 보고하는 권장 방법이었어요. 지금은 버그 리포트와 패치를 https://github.com/Perl/perl5/issues 로 제출해요.
- perlthanks — perl의 저자와 유지보수자에게 감사 메시지를 보내기 쉬운 방법을 제공하는 프로그램이에요.
perlbug를 다른 이름으로 설치한 것일 뿐이에요. - h2ph — Perl이 C 라이브러리와 연결하는 XS 시스템을 갖기 전에는, 프로그래머가 C 헤더 파일들을 읽어 라이브러리 상수를 얻곤 했어요. 여전히
require 'syscall.ph'같은 코드를 볼 수 있는데, 그*.ph파일은 대응하는*.h파일에h2ph를 실행해서 만들어요. 여러 헤더 파일을 한 번에 변환하는 방법은 h2ph 문서를 보세요. - h2xs — C 헤더 파일을 XS 모듈로 변환해요. C 라이브러리와 Perl 모듈 사이에 가능한 한 많은 접착제(glue)를 써 주려고 해요. 순수 Perl 모듈의 골격(skeleton)을 만들 때도 아주 유용해요.
- enc2xs — Encode가 사용할 Perl 확장을, Unicode Character Mapping 파일(
.ucm)이나 Tcl Encoding Files(.enc)로부터 만듦어요. Encode 모듈 빌드 과정에서 내부적으로 쓰일 뿐 아니라, 여러분의 인코딩을 perl에 추가할 때도 쓸 수 있어요. XS 지식은 필요 없어요. - xsubpp — Perl XS 코드를 C 코드로 변환하는 컴파일러예요. 보통 ExtUtils::MakeMaker가 만든 메이크파일이 실행해요.
xsubpp은 C 함수가 Perl 값을 다루고 Perl이 그 함수에 접근할 수 있게 하는 접착제를 만드는 데 필요한 구문을 끼워 넣어 XS 코드를 C로 컴파일해요. - prove — Test::Harness의 테스트 실행 기능을 위한 명령줄 인터페이스예요.
make test의 대안이에요. - corelist — Module::CoreList의 명령줄 프론트엔드로, 특정 perl 버전에 어떤 모듈이 딸려 왔는지 조회해요.
일반 도구 (General tools)
Perl에 딸려 오는 범용 도구 몇 개가 있어요. 대부분 perl 배포판에 포함된 모듈과 함께 온 것이에요.
- encguess — 파일의 문자 인코딩을 추측해 줘요.
- json_pp — 순수 Perl로 만든 JSON 변환·포맷터예요.
- piconv — iconv(1)의 Perl 버전이에요. iconv는 여러 Unix에서 널리 쓰이는 문자 인코딩 변환기예요. 이 스크립트는 원래 Perl v5.8.0의 기술 데모용이었지만, 거의 모든 경우에 iconv 대신 piconv를 쓸 수 있어요.
- ptar — 순수 Perl로 작성된 tar 비슷한 프로그램이에요.
- ptardiff — 추출한 아카이브와 추출하지 않은 아카이브 사이의 diff를 만드는 작은 유틸리티예요. (이 유틸리티는 제대로 동작하려면 Text::Diff 모듈이 필요해요. 이 모듈은 perl에 딸려 오지 않지만 CPAN에서 받을 수 있어요.)
- ptargrep — tar 아카이브 안의 파일 내용에 패턴 매칭을 적용하는 유틸리티예요.
- shasum — Digest::SHA 모듈과 함께 오는 유틸리티로, SHA 체크섬을 출력하거나 검증해요.
- streamzip — STDIN으로 흘러 들어오는 데이터를 스트리밍 zip 컨테이너로 압축해요.
- zipdetails — zip 파일의 내부 레코드 구조에 대한 정보를 보여줘요. zip 파일에 저장된 압축 데이터의 세부 내용을 표시하는 데는 관여하지 않아요.
설치 (Installation)
이 유틸리티들은 perl 배포판에 딸려 오지 않는 추가 Perl 모듈을 관리하는 데 도움을 줘요.
-
cpan — CPAN.pm의 명령줄 인터페이스예요. CPAN에서 모듈이나 배포판을 설치하거나 정보만 얻는 등 훨씬 많은 일을 할 수 있어요. CPAN 모듈의 명령줄 모드와 비슷해요.
perl -MCPAN -e shell -
instmodsh — ExtUtils::Installed를 위한 작은 인터페이스예요. 설치된 모듈을 살펴보고, packlist를 검증하고, 설치된 모듈에서 tarball을 만들 수도 있어요.
더 알아보기 (Learn more)
관련 문서: perldoc, pod2man, pod2text, pod2html, pod2usage, podchecker, splain, pl2pm, perlbug, h2ph, h2xs, enc2xs, xsubpp, cpan, encguess, instmodsh, json_pp, piconv, prove, corelist, ptar, ptardiff, shasum, streamzip, zipdetails