如何从引用的哈希中删除密钥?

时间:2013-11-23 23:42:54

标签: perl hash

我想知道如何从引用的哈希中删除密钥? 我尝试了一些我在互联网上看到的例子,但没有一个正在运作......

$dicA->{$keysA} = "\$";
delete($dicA{$keysA});

那个方法不起作用,它给了我那个错误(我不知道)

  

错误:全局符号“%dic”需要/Users/.../PrefixTree.pm第217行显式的包名称。
       (第217行 - >删除行)

我想请一些建议!

2 个答案:

答案 0 :(得分:2)

你有一些问题。

首先,使用strictwarnings pragma。

其次,在使用变量之前声明变量:

my ($dicA, $keysA);

第三,$dicA->{}$dicA{}是不同的变量。第一个是标量引用,第二个是哈希。使用相同的:

#!/usr/bin/env perl

use warnings;
use strict;

my $dicA;
my $keysA = 'key';

$dicA->{$keysA} = "\$";
delete($dicA->{$keysA});

答案 1 :(得分:2)

delete $dicA->{$keysA};或更完整的例子

#!/usr/bin/env perl

$keysA='Hello';
$dicA = {};
$dicA->{$keysA} = "\$";

print "$dicA\n";
print "key \"$dicA->{$keysA}\"\n";
delete $dicA->{$keysA};
print "$dicA\n";
print "key \"$dicA->{$keysA}\"\n";