+ -
当前位置:首页 → 问答吧 → 二维hash中如何删除元素~

二维hash中如何删除元素~

时间:2010-12-03

来源:互联网

文件元素如下:
1  A  1988
2  B   223
2  C   456
1  D   122

将第二列和第一列作为hash的key;
现在需要需要删除 key1为A的一组数据;
如何操作呢?

作者: zhuxiaolong2   发布时间: 2010-12-03

回复 zhuxiaolong2


    delete吧

作者: wtuter   发布时间: 2010-12-03

delete($hash{A});
用delete删除会留下空行,而且这样删除只是删除了 A 以外的数据~
请问如何删除整行呢

作者: zhuxiaolong2   发布时间: 2010-12-03

先给个例子,看看明白不:
#!/usr/bin/perl -w
#use strict;
my %hash;
while (<DATA>){
my($key,$key1,$value)= split;
#print "$key\t$key1\t$value\n";
$hash{$key}->{$key1}=$value;
}
#my $del=delete $hash{"1"};
#print $del,"\n";
for  (sort keys %hash){
   my $rec={};
  $rec=$hash{$_};
   print "$_ => ";
my $del=delete $rec->{A};
     for (sort keys %$rec){
     print "$_ => $rec->{$_}\n";
}
}


__DATA__
1 A 1988
2 B 223
2 C 456
1 D 122

作者: liyangole   发布时间: 2010-12-03