[Kansai-pm] 関西弁フィルタKansai.pm

Yasushi Nakajima nakajima at netstock.co.jp
Sun Nov 7 09:03:06 CST 2004


Ktat> binmode STDOUT => ':via(Kansai)';
Ktat> 
Ktat> とかやったら、関西弁フィルタとかもできるんじゃないかなぁ〜とか。

 面白そうなので、ちょっとやってみました。三嶋さんのKansai.pmを元に、
PerlIO::viaに対応させたものを作りました。バージョン1.1ということで。

http://hp1.jonex.ne.jp/~nakajima.yasushi/archives/Kansai.pm

 このファイルはutf8で保存する必要があるので注意してください。

use Kansai;
$kansai = kansai($tokyo);

ということももちろんできますが、

open IN, "<:encoding(shiftjis):via(Kansai):utf8", $infile;

としてシフトJISのファイルを関西弁化して読み込むとか、

open OUT, ">:encoding(shiftjis):via(Kansai):utf8", $outfile;

として関西弁化してシフトJISで書き出すとかできます。

 上記の:utf8はPerlIO::viaの方で自動的に付けてくれるようにできるとドキュ
メントには書いてあるのですが、その通りに動きません。ソースを見てみるとど
うもPerlIO::viaのバグと思われるので、perlbugへレポートしておきました。と
りあえずは上記のように:utf8を付けて使ってください。

 ところで、上記のようにPerlIOのレイヤを重ねると、INだと左から右へ使われ、
OUTだと右から左へ使われます。この向きが、< や > の向きと一致しないのでど
うも勘違いしそうになりますね。

 簡単なpodドキュメントも付けたので、CPANに上げてもいいかもしれませんが、
既存のPerlIO::viaものに倣えばText::KansaiとPerlIO::via::Kansaiに分離する
のでしょうけど、これはやはり「Kansai.pm」というファイル名であることに意
味があるので…。うーむ。

-- 
Yasushi Nakajima <nakajima at netstock.co.jp>



More information about the Kansai-pm mailing list