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 ホ ー ム ペ ー ジ
Perl 財 団 が 営 業 す る 文 章 作 品 集
CPAN (Comprehensive Perl Archive Network)
MetaCPAN CPANの 検 索 エ ン ジ ン
Perl メ ー リ ン グ リ ス ト 集
perldoc.jp Perl の 公 式 ド キ ュ メ ン ト 、 モ ジ ュ ー ル ド キ ュ メ ン ト の 日 本 語 訳
Perlの
修 得 に 役 立 つ
URL
<http://www.oreilly.com.tw/>
O’Reilly 社 の Perl関 連 書 籍 (繁 体 字 中 国 語 )
<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 [AT] iki.fi> |
|||
• |
Dan Kogai (小 飼 弾 ) <dankogai [AT] dan.jp> |
|||
• |
Shogo Ichinose (一 野 瀬 翔 吾 ) <shogo82148 [AT] gmail.com> |