【发布时间】:2012-09-01 02:51:03
【问题描述】:
我有一些代码如下。我正在尝试搜索散列,如果遇到一个为零的值,我想删除整个键/值元素。
my %hashy = (
a => my $a,
b => my $b,
c => my $c,
d => my $d,
e => my $e
);
$hashy{'a'} = 0;
$hashy{'b'} = 1;
$hashy{'c'} = 0;
$hashy{'d'} = 2;
$hashy{'e'} = 1;
my @keys = keys %hashy;
my @values = values %hashy;
my $ind = 0;
foreach my $v (@values) {
delete $hashy{$keys[$ind]} if ($v == 0);
}
因此打印%hashy 的预期输出为:b1d2e1(忽略元素顺序)
目前我得到:c0a0b1d2 这甚至还没有接近...任何帮助将不胜感激:)
【问题讨论】:
-
$ind来自哪里?我看不到它正在增加。