Section 1 · User commands

perljp.1

Package: perl-doc

On this page

PERLJP

NAME
説 明
AUTHORS


NAME

perljp − 日 本 語 Perl ガ イ ド

説 明

Perl の 世 界 へ よ う こ そ !

Perl 5.8.0 よ り 、 Unicodeサ ポ ー ト が 大 幅 に 強 化 さ れ 、 そ の 結 果 ラ テ ン 文 字 以 外 の 文 字 コ ー ド の サ ポ ー ト が CJK (中 国 語 、 日 本 語 、 ハ ン グ ル )を 含 め て 加 わ り ま し た 。 Unicodeは 世 界 中 の 文 字 を 一 つ の 文 字 コ ー ド で 扱 う こ と を 目 指 し た 標 準 規 格 で あ り 、 東 か ら 西 、 は た ま た そ の 間 の 文 字 ( ギ リ シ ャ 文 字 、 キ リ ー ル 文 字 、 ア ラ ビ ア 文 字 、 ヘ ブ ラ イ 文 字 、 デ ィ ー ヴ ァ ナ ガ ー リ 文 字 、 な ど な ど ) や 、 こ れ ま で は OSベ ン ダ ー が 独 自 に 定 め て い た 文 字 (PCお よ び Macintosh)が す で に 含 ま れ て い ま す 。

Perl 自 身 は Unicode で 動 作 し ま す 。 Perl ス ク リ プ ト 内 の 文 字 列 リ テ ラ ル や 正 規 表 現 は Unicode を 前 提 と し て い ま す 。 そ し て 入 出 力 の た め に は 、 こ れ ま で 使 わ れ て き た さ ま ざ ま な 文 字 コ ー ド に 対 応 す る モ ジ ュ ー ル 、 「 Encode 」 が 標 準 装 備 さ れ て お り 、 Unicode と こ れ ら の 文 字 コ ー ド の 相 互 変 換 も 簡 単 に 行 え る よ う に な っ て い ま す 。

現 時 点 で Encode が サ ポ ー ト す る 文 字 コ ー ド は 以 下 の と お り で す 。

7bit−jis AdobeStandardEncoding AdobeSymbol AdobeZdingbat
ascii big5 big5−hkscs cp1006
cp1026 cp1047 cp1250 cp1251
cp1252 cp1253 cp1254 cp1255
cp1256 cp1257 cp1258 cp37
cp424 cp437 cp500 cp737
cp775 cp850 cp852 cp855
cp856 cp857 cp860 cp861
cp862 cp863 cp864 cp865
cp866 cp869 cp874 cp875
cp932 cp936 cp949 cp950
dingbats euc−cn euc−jp euc−kr
gb12345−raw gb2312−raw gsm0338 hp−roman8
hz iso−2022−jp iso−2022−jp−1 iso−8859−1
iso−8859−10 iso−8859−11 iso−8859−13 iso−8859−14
iso−8859−15 iso−8859−16 iso−8859−2 iso−8859−3
iso−8859−4 iso−8859−5 iso−8859−6 iso−8859−7
iso−8859−8 iso−8859−9 iso−ir−165 jis0201−raw
jis0208−raw jis0212−raw johab koi8−f
koi8−r koi8−u ksc5601−raw MacArabic
MacCentralEurRoman MacChineseSimp MacChineseTrad MacCroatian
MacCyrillic MacDingbats MacFarsi MacGreek
MacHebrew MacIcelandic MacJapanese MacKorean
MacRoman MacRomanian MacRumanian MacSami
MacSymbol MacThai MacTurkish MacUkrainian
nextstep posix−bc shiftjis symbol
UCS−2BE UCS−2LE UTF−16 UTF−16BE
UTF−16LE UTF−32 UTF−32BE UTF−32LE
utf8 viscii

(全 114種 類 )

例 え ば 、 文 字 コ ー ド FOOの フ ァ イ ル を UTF−8に 変 換 す る に は 、 以 下 の よ う に し ま す 。

perl −Mencoding=FOO,STDOUT,utf8 −pe1 < file.FOO > file.utf8

ま た 、 Perlに は 、 全 部 が Perlで 書 か れ た 文 字 コ ー ド 変 換 ユ ー テ ィ リ テ ィ 、 piconvも 付 属 し て い る の で 、 以 下 の よ う に す る こ と も で き ま す 。

piconv −f FOO −t utf8 < file.FOO > file.utf8
piconv −f utf8 −t FOO < file.utf8 > file.FOO

(jcode.pl|Jcode.pm|JPerl) からの移行

5.8以 前 の 、 ス ク リ プ ト が EUC−JPで あ れ ば リ テ ラ ル だ け は 扱 う こ と が で き ま し た 。 ま た 、 入 出 力 を 扱 う モ ジ ュ ー ル と し て は Jcode.pmが ( <http://openlab.ring.gr.jp/Jcode/> )、 perl4用 の ユ ー テ ィ リ テ ィ と し て は jcode.plが そ れ ぞ れ 存 在 し 、 日 本 語 の 扱 え る CGIで よ く 利 用 さ れ て い る こ と を 御 存 じ の 方 も 少 な く な い か と 思 わ れ ま す 。 た だ し 、 日 本 語 に よ る 正 規 表 現 を う ま く 扱 う こ と は 不 可 能 で し た 。

5.005以 前 の Perlに は 、 日 本 語 に 特 化 し た ロ ー カ ラ イ ズ 版 、 Jperlが 存 在 し ま し た ( <http://homepage2.nifty.com/kipp/perl/jperl/index.html> ※1)。 ま た 、 Mac OS 9.x/Classic用 の Perl、 MacPerlの 日 本 語 版 も MacJPerlと し て 存 在 し て ま し た 。 ( <https://habilis.net/macjperl/> ).こ れ ら で は 文 字 コ ー ド と し て EUC−JPに 加 え Shift_JISも そ の ま ま 扱 う こ と が で き 、 ま た 日 本 語 に よ る 正 規 表 現 を 扱 う こ と も 可 能 で し た 。

Perl5.8で は 、 こ れ ら の 機 能 が す べ て Perl本 体 だ け で 実 現 で き る 上 に 、 日 本 語 の み な ら ず 上 記 114の 文 字 コ ー ド を す べ て 、 し か も 同 時 に 扱 う こ と が で き ま す 。 さ ら に 、 CPANな ど か ら 新 し い 文 字 コ ー ド 用 の モ ジ ュ ー ル を 入 手 す る こ と も 簡 単 に で き る よ う に な っ て い ま す 。

※1: ホ ス テ ィ ン グ サ ー ビ ス の 終 了 に よ り 現 在 は 閲 覧 で き ま せ ん 。 Vector( <https://www.vector.co.jp/soft/win95/util/se098198.html> )か ら Window用 の バ イ ナ リ を 、 CPAN( <https://www.cpan.org/src/unsupported/4.036/jperl/> )か ら perl4用 の パ ッ チ を 入 手 す る こ と が で き ま す 。

•入 出 力

以 下 の 例 は い ず れ も Shift_JISの 入 力 を EUC−JPに 変 換 し て 出 力 し ま す 。

jcode.pl

require “jcode.pl”;
while(<>){
jcode::convert(*_, ‘euc’, ‘sjis’);
print;
}

Jcode.pm

use Jcode;
while(<>){
print Jcode−>new($_, ‘sjis’)−>euc;
}

Perl 5.8

use Encode;
while(<>){
from_to($_, ‘shiftjis’, ‘euc−jp’);
print;
}

Perl 5.8 − encoding を 利 用 し て

use encoding ‘euc−jp’, STDIN => ‘shiftjis’;
while(<>){
print;
}

•Jperl 互 換 ス ク リ プ ト

い わ ゆ る “shebang”を 変 更 す る だ け で 、 Jperl用 の scriptの ほ と ん ど は 変 更 な し に 利 用 可 能 だ と 思 わ れ ま す 。

#!/path/to/jperl
↓
#!/path/to/perl −Mencoding=euc−jp

詳 し く は perldoc encoding を 参 照 し て く だ さ い 。

さらに詳しく

Perlに は 膨 大 な 資 料 が 付 属 し て お り 、 Perlの 新 機 能 や Unicodeサ ポ ー ト 、 そ し て Encodeモ ジ ュ ー ル の 使 用 法 な ど が 細 か く 網 羅 さ れ て い ま す ( 残 念 な が ら 、 ほ と ん ど 英 語 で は あ り ま す が ) 。 以 下 の コ マ ン ド で そ れ ら の 一 部 を 閲 覧 す る こ と が 可 能 で す 。

perldoc perlunicode # Perlの Unicodeサ ポ ー ト 全 般
perldoc Encode # Encodeモ ジ ュ ー ル に 関 し て
perldoc Encode::JP # う ち 日 本 語 文 字 コ ー ド に 関 し て

Perl全般に関する URL

<https://www.perl.org/>

Perl ホ ー ム ペ ー ジ

<https://www.perl.com/>

Perl 財 団 が 営 業 す る 文 章 作 品 集

<https://www.cpan.org/>

CPAN (Comprehensive Perl Archive Network)

<https://metacpan.org/>

MetaCPAN CPANの 検 索 エ ン ジ ン

<https://lists.perl.org/>

Perl メ ー リ ン グ リ ス ト 集

<https://perldoc.jp/>

perldoc.jp Perl の 公 式 ド キ ュ メ ン ト 、 モ ジ ュ ー ル ド キ ュ メ ン ト の 日 本 語 訳

Perlの修得に役立つ URL

<http://www.oreilly.com.cn/>

O’Reilly 社 の Perl関 連 書 籍 (簡 体 字 中 国 語 )

<https://www.oreilly.co.jp/catalog/>

オ ラ イ リ ー 社 の Perl関 連 書 籍 (日 本 語 )

Perl に関する団体

<https://www.pm.org/groups/asia.html>

ア ジ ア 地 域 の Perl Mongers (Perlの ユ ー ザ ー グ ル ー プ ) 一 覧

<https://japan.perlassociation.org>

一 般 社 団 法 人 Japan Perl Association (JPA) Perl技 術 及 び 文 化 の 啓 蒙 ・ 促 進 の た め の 組 織

Unicode関連のURL

<https://www.unicode.org/>

Unicode コ ン ソ ー シ ア ム (Unicode規 格 の 選 定 団 体 )

<https://www.cl.cam.ac.uk/%7Emgk25/unicode.html>

UTF−8 and Unicode FAQ for Unix/Linux

<https://wiki.kldp.org/Translations/html/UTF8−Unicode−KLDP/UTF8−Unicode−KLDP.html>

UTF−8 and Unicode FAQ for Unix/Linux (ハ ン グ ル 訳 )

AUTHORS

•Jarkko Hietaniemi <jhi@iki.fi>
•Dan Kogai (小 飼   弾 ) <dankogai@dan.co.jp>
•Shogo Ichinose (一 野 瀬   翔 吾 ) <shogo82148@gmail.com>