[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