[kansaipm] Re: Perl 5.6 ネタ

OKABE, Keiichi okabek at beige.ocn.ne.jp
Tue Apr 4 09:23:29 CDT 2000


岡部です。

----- Original Message ----- 
From: <mishima at momo.so-net.ne.jp>
To: <kansai-pm-list at pm.org>
Sent: Wednesday, April 05, 2000 8:01 AM
Subject: [kansaipm] Perl 5.6 ネタ


> これについては、Filterというモジュールを使えば...ってあれぇ、マニュア
> ルは入っているのに、Filter モジュール本体が入っていません。とにかく、
> Filterというモジュールを使うと、スクリプトはSJISなりEUCで書いておいて、
> コンパイル直前にUTF8に変換して実行するということができるはずです。但し、
> それなりの負荷はかかります。

Filterはppmを使ってインストールできます。最初はバグがあってインストール
できなかったんですが、バグじゃと騒いで修正してもらいました。
以前にTokyo.pmでわたなべさんに教えてもらったスクリプトがあるので
後ろにくっつけておきます。
open時に簡単に変換できるようになると便利なんですけどねぇ〜
Tkでutf8サポートした窓を作ればよいような気もしてます。(^^)

-- わたなべさん wrote --
% cat SJIS.pm
package SJIS;

use Filter::Util::Call;
use Jcode;

my $jcode = new Jcode;

sub multibyte_filter {
    my $status;
    if (($status = filter_read()) > 0 ) {
$_ = $jcode->set(\$_, sjis)->utf8;
    }
    $status;
}

sub import {
    filter_add(\&multibyte_filter);
}
1;
% cat test.pl
use SJIS;
use utf8;

my $string = "あいうえお表";
print "code=", scalar Jcode::getcode($string), "\n";
print "length=", length($string), "\n";
% perl test.pl
code=utf8
length=6
---
---
use Tk;$c=tkinit->Canvas(-height=>50,-width=>100)->pack;$a="15115155,223342,
2343,3335,24254544,6163,5292918185,53939484,7273,6465757464";$a=~s/\s//g;
map{s/(\d)/sprintf("%s,",$1*10)/eg;$c->createLine(split /,/,$_)}(split /,/,$a);
MainLoop; #okabek at beige.ocn.ne.jp






More information about the Kansai-pm mailing list