作者: Bruce.
日時: 2008/1/13(00:36)
Bruce.です。

#今tvkでは俗・絶望先生のopが流れています。
#早くCDでねーかなあ。

というわけで、

林 宏 さんは書きました (2008/01/12 23:43):

> Microsoft Windows Xp Professional 2002  Service Pack 2
> Activeperl 5.8.8_build820
> スクリプトを shift-jisで書いてます。
> perl/tk でファイル(ディレクトリ)を読込んで
> chdir($drc) しようと思うのですが、ディレクトリに日本語が
> 入っていると、ディレクトリに移動したり、ファイルが読込めません。

それはSjiftJISの呪いとuse encodingの祟りです。

> sub Add_Date {# ファイル名先頭に日付(20071010_XXXXXXXXX)の「20071010_」を付ける
>   ($drc) = &OpenFile;
>   chdir($drc); # $drc に日本語があると、移動できない

ここで$drcはフラグつきUTF-8文字列ですよね。

これを chdir に渡しても、よろしく変換してくれることはありません。
そのため存在しないディレクトリに chir しようとすることになり、結果として
失敗します。

ファイルの読み込みも根は同じで、見つからないファイルをオープンしようとして
失敗しています。

このほかにも '\' の災いなんてのがありますので、use encoding を使って
どうこうしようというのは激しくオススメできません。

では。

-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes or should I?
  mail kbk [at] kt.rim.or.jp
        web  www.kt.rim.or.jp/~kbk/zakkicho/
             homepage3.nifty.com/farstar/