我遇到一个问题,即退出Perl Tkx
脚本会导致Perl命令行解释器崩溃。
例如:
use strict;
use warnings;
use Tkx;
my $mw = Tkx::widget->new('.');
my $button = $mw->new_ttk__button(-text => "Hello", -command => \&main);
Tkx::pack($button);
Tkx::MainLoop;
sub main {
print "TESTING\n";
exit 0;
}
此代码生成以下输出:
点击" Hello"按钮调用main()
子程序,打印" TESTING"然后尝试退出并崩溃命令行解释器:
这似乎只发生在Tkx
脚本中,并且只有在程序在调用MainLoop
之前已经输入exit
时才会崩溃。有谁知道这里发生了什么?
Perl版本信息:
答案 0 :(得分:1)
当我从64位Perl切换到32位Perl时,似乎开始出现此问题。切换回64位版本的Perl解决了这个问题。
值得注意的是,choroba在退出之前使用g_destroy
销毁主窗口的解决方案确实解决了问题,即使在运行32位版本的Perl时也是如此。也可以更好的做法是在退出之前手动销毁你的窗口,即使Perl可以自己清理它......你永远不知道其他人试图运行你的脚本可能有什么版本的Perl!