Mastering Perl/Tk 中的代码错误?

Mastering Perl/Tk 中的代码错误?

Mastering Perl/Tk 中的代码错误?
中文: [url]http://mptk.chunzi.org/zh_cn/tk/ch04_10.htm[/url]
En: [url]http://mptk.chunzi.org/en_us/tk/ch04_10.htm[/url]

书中第四章第10节的示例代码如下,
用来使按钮Enabled或Disabled, 但我运行了一下,有错误,

红色标记的部分是一个引用赋值,[color=Red]右边其实返回一个列表 ('-state','state','State','normal','normal');[/color]
因此下面的 [color=Red]if [/color]判断就没用了, 要改成 [color=Red]if(@$state->[4] eq "disabled")[/color]
[color=Orange]我想问一下, 是书本本身的错误, 还是 Tk 有东西改变了??[/color]


my $exit_b = $mw->Button(-text => 'Exit',
-command => sub { exit })->pack;
$var = "Disable Exit";
$mw->Button(-textvariable => \$var,
-command => sub { [color=Red]my $state = $exit_b->configure(-state);[/color]
[color=Orange]if ($state eq "disabled") [/color]{
$exit_b->configure(-state => 'normal');
$var = "Disable Exit";
} else {
$exit_b->configure(-state => 'disabled');
$var = "Enable Exit";
}})->pack;
我也发现此错误将代码更改.
我也发现此错误将代码更改下吧: my $state = $exit_b->cget(-state);
这样没有问题