perlko - 한국어 Perl 안내서
Perl 세계에 오신 것을 환영합니다!
Perl은 가끔 '실용적인 추출 및 보고 언어'라고 하기도 합니다만 다른 널리 알려진 것들 중에서 '병리학적 절충주의적 쓰레기 목록 작성기'라고 하기도 합니다. 사실 이것은 끼워 맞춘 것이며 Perl이 이것들의 첫 글자를 가져와서 이름을 붙인 것은 아닙니다. Perl의 창시자 Larry가 첫 번째 이름을 먼저 생각했고 널리 알려진 것을 나중에 지었기 때문입니다. 그렇기 때문에 'Perl'은 모두 대문자가 아닙니다. 널리 알려진 어떤 것을 가지고 논쟁하는 것은 의미가 없습니다. Larry는 두 개 다 지지합니다.
가끔 p가 소문자로 작성된 'perl'을 볼 것입니다. P가 대문자로 되어 있는 'Perl'은 언어를 참조할 때 쓰이며 'perl'처럼 p가 소문자인 경우는 여러분의 프로그램을 컴파일하고 돌릴 때 사용되는 해석기를 지칭할 때 사용됩니다.
Perl은 본래 문자열 생성을 위해 만들졌지만 지금은 시스템 관리와 웹 개발, 네트워크 프로그래밍, GUI 개발 등을 포함한 여러 분야에서 널리 사용되는 범용 프로그래밍 언어입니다.
이 언어는 아름다움(아주 작고, 우아하고, 아주 적고)보다 실용적(사용하기 쉽고, 효율적이며, 가능한 최대한)인 것을 지향하고 있습니다. 사용하기 쉽고, 절차적 프로그래밍과 객체 지향 프로그래밍을 모두 지원하고, 강력한 문자열 처리 기능을 내장하고, 세상에서 가장 인상적인 제 3자의 모듈 모음처를 가지고 있다는 것은 Perl의 가장 중요한 특징입니다.
Perl의 언어적 특징은 pod/perlintro.pod 문서에서 소개합니다.
이번 릴리스에서 가장 중요한 변화는 pod/perldelta.pod에서 논의합니다.
또한 다양한 출판사가 출판한 많은 Perl 책은 다양한 주제를 다루고 있습니다. 자세한 정보는 pod/perlbook.pod 문서를 확인하세요.
여러분이 비교적 현대의 운영체제를 사용하고 있고 현재 버전의 Perl을 지역적으로 설치하고 싶다면 다음 명령을 실행하세요.
./Configure -des -Dprefix=$HOME/localperl
make test
make install
上述指令會為您的平台設定環境並執行編譯,然後執行迴歸測試,最後將 Perl 安裝到主目錄下的 localperl 目錄。
如果您遇到任何問題或需要安裝自訂版本的 Perl,請參閱目前發行版中 INSTALL 檔案內的詳細說明。此外,還有許多 README 檔案,其中包含在各種不常見平台上建置和使用 Perl 的說明和建議。
安裝 Perl 後,您可以使用 perldoc
工具存取豐富的文件。請執行下列指令開始使用:
perldoc perl
Perl 是個龐大且複雜的系統,可用於從編織到火箭科學的各個領域。當您遇到困難時,很可能已經有人解決過這個問題。如果您已查看所有文件,但確定有錯誤,請使用 perlbug
工具向我們回報錯誤。關於 perlbug
的詳細資訊,請執行 perldoc perlbug
或在命令列中執行 perlbug
。
即使您已啟用 Perl,Perl 也會持續進化,因此可能會有更新的版本已修正您遇到的錯誤,或新增您認為有用的新功能。
您可以在 CPAN(全方位 Perl 檔案網路)網站 http://www.cpan.org/src/ 隨時找到最新版本的 Perl。
如果您想註冊 Perl 原始碼的簡單修補程式,請參閱 pod/perlhack.pod 文件中的「極速修補程式指南」。
請務必注意,我希望您知道我製作了這麼棒的東西,因為這會讓我的故事「作者」感到高興。如果這讓您感到困擾,您可能需要修正您對「作者」的想法。但無論如何,您使用 Perl 並不會有任何問題。 :-)
- "저자"로부터.
從 5.8.0 版開始,Perl 廣泛支援 Unicode/ISO 10646。作為 Unicode 支援的一部分,它支援許多國家/地區在 Unicode 之前使用且現在仍在廣泛使用的編碼,包括中日韓。Unicode 的目標是容納全世界所有語言的書寫系統(包括歐洲的拉丁字母、西里爾字母、希臘字母、印度和東南亞的婆羅米系文字、阿拉伯字母、希伯來字母、中日韓的漢字、韓文的韓語字母、日文的假名、北美印第安人的書寫系統等),因此它包含現有各語言、國家/地區和作業系統中獨有的所有字元集和編碼,以及現有字元集不支援的許多字元。
Perl 內部使用 Unicode 作為字元表示。更具體地說,您可以在 Perl 程式碼中撰寫 UTF-8 字串,各種函式和運算子(例如正規表示式、索引、子字串)會以 Unicode 字元單位運作,而非位元組單位。請參閱 pod/perlunicode.pod 文件以取得更詳細的資訊。為了協助您使用在 Unicode 廣泛普及前廣泛使用且仍廣泛使用的各國家/地區/語言編碼進行輸入/輸出,並處理使用這些編碼的資料和文件,我們提供了 Encode 模組。最重要的是,Encode 模組可以讓您輕鬆地在許多編碼之間進行轉換。
Encode 모듈은 다음과 같은 한국어 인코딩을 지원합니다.
euc-kr
同時使用 US-ASCII 和 KS X 1001 的多位元組編碼,通常稱為完整型。請參閱 KS X 2901 和 RFC 1557。
cp949
MS-Windows 9x/ME에서 사용되는 확장 완성형입니다. euc-kr에 8,822자의 한글 음절을 추가한 것입니다. 별칭은 uhc, windows-949, x-windows-949, ks_c_5601-1987입니다. 마지막 이름은 적절하지 않은 이름이지만, Microsoft 제품에서 CP949의 의미로 사용되고 있습니다.
johab
KS X 1001:1998 부록 3에서 규정한 조합형입니다. 문자 레퍼토리는 cp949와 마찬가지로 US-ASCII와 KS X 1001에 8,822자의 한글 음절을 추가한 것으로 인코딩 방식은 전혀 다릅니다.
iso-2022-kr
RFC 1557에서 규정한 한국어 인터넷 메일 교환용 인코딩으로 US-ASCII와 KS X 1001을 레퍼토리로 하는 점에서 euc-kr과 같지만 인코딩 방식이 다릅니다. 1997-8년 경까지 사용되었으나 더 이상 메일 교환에 사용되지 않습니다.
ksc5601-raw
KS X 1001(KS C 5601)을 GL(즉, MSB를 0으로 한 경우)에 놓았을 때의 인코딩입니다. US-ASCII와 결합하지 않고 단독으로 사용되는 일은 X11 등에서 글꼴 인코딩(ksc5601.1987-0. '0'은 GL을 의미함)으로 사용되는 것을 제외하고는 거의 없습니다. KS C 5601은 1997년 KS X 1001로 이름을 바꾸었습니다. 1998년에는 두 글자(유로화 부호와 등록 상표 부호)가 더해졌습니다.
예를 들어, euc-kr 인코딩으로 된 파일을 UTF-8로 변환하려면 명령줄에서 다음처럼 실행합니다.
perl -Mencoding=euc-kr,STDOUT,utf8 -pe1 < file.euc-kr > file.utf8
반대로 변환할 경우 다음처럼 실행합니다.
perl -Mencoding=utf8,STDOUT,euc-kr -pe1 < file.utf8 > file.euc-kr
이런 변환을 좀더 편리하게 할 수 있도록 도와주는 piconv가 Perl에 기본으로 들어 있습니다. 이 유틸리티는 Encode 모듈을 이용한 순수 Perl 유틸리티로 이름에서 알 수 있듯이 Unix의 iconv
를 모델로 한 것입니다. 사용법은 다음과 같습니다.
piconv -f euc-kr -t utf8 < file.euc-kr > file.utf8
piconv -f utf8 -t euc-kr < file.utf8 > file.euc-kr
Perl은 기본적으로 내부에서 UTF-8을 사용하며 Encode 모듈을 통해 다양한 인코딩을 지원하지만 항상 다음 규칙을 지킴으로써 인코딩과 관련한 다양하게 발생할 수 있는 문제의 가능성을 줄이는 것을 추천합니다.
소스 코드는 항상 UTF-8 인코딩으로 저장
소스 코드 상단에 use utf8;
프라그마 사용
소스 코드, 터미널, 운영체제, 데이터 인코딩을 분리해서 이해
입출력 파일 핸들에 명시적인 인코딩을 사용
중복(double) 인코딩에 주의
유니코드 컨소시엄
http://std.dkuug.dk/JTC1/SC2/WG2
기본적으로 Unicode와 같은 ISO 표준인 ISO/IEC 10646 UCS(Universal Character Set)을 만드는 ISO/IEC JTC1/SC2/WG2의 웹 페이지
https://www.cl.cam.ac.uk/~mgk25/unicode.html
유닉스/리눅스 사용자를 위한 UTF-8 및 유니코드 관련 FAQ
http://wiki.kldp.org/Translations/html/UTF8-Unicode-KLDP/UTF8-Unicode-KLDP.html
유닉스/리눅스 사용자를 위한 UTF-8 및 유니코드 관련 FAQ의 한국어 번역
다음은 공식적인 Perl 관련 자료중 일부입니다.
Perl 공식 홈페이지
O'Reilly의 Perl 웹 페이지
CPAN - Comprehensive Perl Archive Network, 통합적 Perl 파일 보관 네트워크
메타 CPAN
Perl 메일링 리스트
Perl 메타 블로그
Perl 수도승들을 위한 수도원
https://www.pm.org/groups/asia.html
아시아 지역 Perl 몽거스 모임
Perl 크리스마스 달력
다음은 Perl을 더 깊게 공부하는데 도움을 줄 수 있는 한국어 관련 사이트입니다.
한국 Perl 커뮤니티 공식 포털
Perl 문서 한글화 프로젝트
https://cafe.naver.com/perlstudy.cafe
네이버 Perl 카페
韓國 Perl 使用者 모임
Seoul.pm Perl 크리스마스 달력 (2010 ~ 2012)
GYPARK(Geunyoung Park)의 Perl 관련 한글 문서 저장소
README 파일의 'LICENSING' 항목을 참고하세요.
Jarkko Hietaniemi <jhi@iki.fi>
신정식 <jshin@mailaps.org>
김도형 <keedi@cpan.org>