已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
5个月前关闭。
Improve this question
我有下面的代码,我搞混了(if (!$ACTIVE{$id}) {
)条件.
my %ACTIVE = (
'2' => $VAR1->{'17'},
'12' => $VAR1->{'17'},
'18' => $VAR1->{'15'},
'11' => $VAR1->{'15'},
'3' => $VAR1->{'17'},
'5' => $VAR1->{'17'}
);
my %NAMES = (
'3' => 'IND',
'2' => 'UK',
'5' => 'USA',
'11' => 'SA',
'12' => 'AUS',
'18' => 'CAN'
);
my $id = 3; #Input
if ($id) {
my $name = $NAMES{$id};
if (!$ACTIVE{$id}) {
print "Region \'$name\' is not active\n";
} else {
print "Region \'$name\' is active\n"
}
}
因为$id
是我的输入,并且根据$ACTIVE{$id}
的条件值是存在于散列中的$VAR1->{'17'}
。
我认为它应该打印“区域'IND'是活动的”,但它打印“区域'IND'是不活动的”。有人能说为什么吗?即使我有活动ID 3的值。
1条答案
按热度按时间n6lpvg4x1#
$ACTIVE{3}
是$VAR1->{'17'}
,这是一个错误值,因为$VAR1
不存在。如果您使用
use strict; use warnings;
,这个问题就会突出显示。