西野と申します。

橋本さんwrote:
>現在、WindowsXP上のActivePerlでperl/Tkのプログラムを作っています。
>Tk::Entryに日本語を入れると、かなりの頻度でperlが落ちるようです。
>#utf8と何か関係があり?んんん?
>CPANの最新ソースを覗いたらutf8対応を行っているようですが、
>この問題は、すぐには解決されない気がしてます。
>
>-textvariableを使えば、安定した動作が望める気配なので(憶測です)、
><FocusIn>でフックしてIME入力を行うプログラムを作成しました。
>
ActivePerlのバージョンや、Tkのバージョンが明記されていないので、
バグかどうかは分かりませんが、少なくてもActivePerl Build 807で、
かつTkが804.025であれば、正常に動きますよ。実験のため、以下の
ようなチョンプロを書いて実験してみました。EntryにIMEから日本語
を入力してReturnキーを押すと、コンソールに入力内容を出力すると
いう、極めて簡単なものです。

#!perl
use strict;
use warnings;
use Tk;
use Encode;

my $mw = MainWindow->new();
my $var;
my $entry = $mw->Entry(
    -width => 20,
    -font  => 15,
)->pack;
$entry->bind('<Key>', [\&disp, Ev('K')]);
sub disp {
    if ( $entry->get and $_[1] eq "Return" ) {
        print encode("shiftjis", $entry->get), "\n";
    }
}
MainLoop;