[Tokyo.pm] jus Benkyoukai

WATANABE Hirofumi watanabe @ ase.ptg.sony.co.jp
1999年 9月 9日 (木) 21:20:16 CDT


わたなべです.

"OKABE, Keiichi" <okabek @ beige.ocn.ne.jp> writes:

:> Filter module を使って utf8 に変換してってのは激遅かなあ.
:> 以前 16 進に変換するのを作ったら 10 倍ぐらい遅くてこりゃだめ
::
:Filter module ってなんですか? そういうモジュールがあるんでしょうか。

CPAN にあります. 簡単に言うと source となる script 自体
filter をかけてから実行できるといったもんです.
というわけで岡部さんが期待してるのとはちょっと違うかも.

試しに作ったのはこんな感じです.

package SJIS;

use Filter::Util::Call;

sub multibyte_filter {
    my $status;
    if (($status = filter_read()) > 0 ) {
        s/([\x81-\x9f\xe0-\xef])([\x40-\x7e\x80-\xfc])/
            sprintf("\\x%02x\\x%02x",ord($1),ord($2))
        /eg;
    }
    $status;
}

sub import {
    filter_add(\&multibyte_filter);
}
1;

これをたとえば SJIS.pm とすると
use SJIS;
print "表十ソ\n";
のようにすれば jperl を使わなくても化けずに実行できます.

utf8 に変換するコマンドがあれば(toutf8 とする)
use Filter::sh 'toutf8';
print "ほげ\n";
でいけそうな気も.
あ, でもこれは script だけなのでファイルの入出力には別に用意
しないとだめですね.

-- 
わたなべひろふみ
すみません. また直に送っちゃいました.



Tokyo-pm メーリングリストの案内