パザ日誌

2003年11月02日(日)

PantherでのPerl

Panther(Mac OS X 10.3)にしてから、多分設定は前のままなのにPerlを使うとき——主にこのサイトの生ログをAnalogにかけたあとのURLデコードと、xhtmlのチェックに愛用させて頂いてる
Nakamuxuさん作のCocoaアプリケーション
AHL-Runnerの結果表示のとき——に次の様な怒られてしまうようになったんです。

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
      LC_ALL = (unset),
      LC_COLLATE = "C",
      LC_TIME = "C",
      LANG = "ja_JP.EUC"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

これは普通にPantherをインストールした状態では出ずに、X11の日本語環境設定のために~/.MacOSXフォルダ内にenvironment.plistなどを作って、LANGとかを"C"以外に設定すると出る模様です。

調べてみるとこれはPerlの世界では有名なものらしく、~/.bashrcとかに

PERL_BADLANG=true;export PERL_BADLANG

とするといちいち怒られなくなるようです。ちなみに csh系のシェルでは以下のようにするのだとか。

setenv PERL_BADLANG true

これでTerminalとかでPerlを走らせた場合はいちいち怒られなくなったんですが、これでもAHL-Runnerでは直らずに困ってたんです。何回もCheckボタンを押して、思い出したように何回かに一回、ちゃんと結果を表示してくれたりはするんですけれど、それではやってられないです。

色々と悩んで試してみたところ、environment.plistで設定したLANG = "ja_JP.EUC"の参照先であろう(すいません、不案内なもので……)/usr/share/locale/を見てみると、ja_JP.EUCじゃなくてja_JP.eucJPってなってるんですね。それでいちかばちかenvironment.plistの設定をLANG = "ja_JP.eucJP"にしたら完全に直りました。よかったぁ! もし同じ症状の方は試してみてください。


(追記)試しにバックアップしてあったMac OS X 10.2.8の/usr/share/localeを見てみるとja_JP.EUC/となってて、これが Pantherではja_JP.eucJPと変更されている模様なので、やっぱりこの辺りが原因かと思いますです。


(追記2)"ja_JP.EUC"じゃないと不具合がおこる可能性もあるようなので、気をつけてくださいませ。

コメントは受け付けていません。

pazap研究室 all rights reserved.