FreeBSD QandA 1218
Q. package/ports にある、日本語対応の perl (jperl) をインストール
したのですが、日本語に対して split 等を使っても、オリジナルの
perl と同じ挙動になります。
A. jperl (パッケージ名 ja-perl) の日本語機能を使う場合は、
1) スクリプトの先頭行を
#!/usr/local/bin/perl
でなく、
#!/usr/local/bin/jperl
と書く。
2) 日本語を使う前に perl スクリプトに
use I18N::Japanese qw(re);
と書いておく。
のどちらかを行ってください。どちらの条件も満たしていない場合、
jperl はオリジナルの perl として動作します。
また、処理対象の文字列の文字コードを確認してください。→[管理番号 1254]
jperl は、コンパイル時に EUC か SJIS のどちらかを指定してコンパイル
されます。この指定と、処理する文字列の文字コードが合っていないと
正しく処理されません。package/ports の jperl は EUC版になっています。
ただし、-Lsjis オプションをつけると SJIS 版として動きます。
つまり、スクリプトの先頭を
#!/usr/local/bin/jperl
あるいは
#!/usr/local/bin/jperl -Leuc
とすると EUC を扱えますし、
#!/usr/local/bin/jperl -Lsjis
とすれと SJIS を扱うことができます。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。