我想知道如何从引用的哈希中删除密钥? 我尝试了一些我在互联网上看到的例子,但没有一个正在运作......
$dicA->{$keysA} = "\$";
delete($dicA{$keysA});
那个方法不起作用,它给了我那个错误(我不知道)
错误:全局符号“%dic”需要/Users/.../PrefixTree.pm第217行显式的包名称。
(第217行 - >删除行)
我想请一些建议!
答案 0 :(得分:2)
你有一些问题。
首先,使用strict
和warnings
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";