FreeBSD QandA 1218

FreeBSD QandA

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 まで お知らせください。