2013-11-23 40 views
1

我想知道如何從引用散列中刪除密鑰? 我嘗試了一些例子,我上網,但沒有正在看...如何從引用的散列中刪除一個鍵?

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

這種方法不能工作,它給我的錯誤(我不知道)

Error: Global symbol "%dic" requires explicit package name at /Users/.../PrefixTree.pm line 217.
(line 217 -> delete line)

我想請一些建議!

回答

2

你有一些問題。

首先,使用strictwarnings編譯指示。

其次,在使用前聲明變量:

my ($dicA, $keysA); 

三,$dicA->{}$dicA{}是不同的變量。第一個是標量引用,第二個是散列。使用相同的一個:

#!/usr/bin/env perl 

use warnings; 
use strict; 

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

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

它的工作! :) 謝謝 ! – Damiii

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"; 
+0

它的工作!也謝謝你 ! :) – Damiii

相關問題