gpt4 book ai didi

linux - 在Linux中使用Tk运行Perl程序报错 "1132148 is not a hash"

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:13 25 4
gpt4 key购买 nike

我正在运行 Centos 7、Perl 5 和 X11。在运行从在线教程复制的第一次 perl 程序时 -

#!/usr/bin/perl
use strict;
use Tk;
my $mw = new MainWindow;
my $label = $mw -> Label(-text=>"Hello World") -> pack();
my $button = $mw -> Button(-text => "Quit",
-command => sub { exit })
-> pack();
MainLoop;

然后从命令行调用 -

./test.pl

我收到以下错误-

[foo@localhost Desktop]$ ./test.pl 
1132148 is not a hash at /usr/lib64/perl5/vendor_perl/Tk/MainWindow.pm line 53.
Aborted (core dumped)

注释掉行后,错误似乎是由“my $mw =”行产生的

谷歌搜索错误消息,我找到了表明它可能是 X11 已知问题但不确定的引用资料。也不确定从哪里开始寻找答案。

我已经(使用 yum)仔细检查以确保 tk、perl-tk 和 tcl 是最新的。我试图检查 X 安装的状态,但我有点害怕重新安装,以免让事情变得更糟。

最佳答案

mbethke 的评论指出了这个特定错误的真正问题所在。事实上,在 Linux 上,您可以使用 wish 命令(应该会打开一个小窗口)快速检查 Tk 是否正常工作。

遇到问题时,wish打不开,输出如下

unknown color name 'BACKGROUND'

并且由于 wish 和此错误比某些 Perl 和 Tk 脚本更常见,您可以找到更多答案,例如 this one ,您可以在其中找到一种清除定义的颜色的方法:

xrdb -load /dev/null
xrdb -query

(xrdb -query用于查询当前颜色配置。)

然后,一切都应该修复。

关于linux - 在Linux中使用Tk运行Perl程序报错 "1132148 is not a hash",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33585570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com