我想在perl中使用函數創建哈希。其實我正在研究在perl中創建一個二叉搜索樹。下面是代碼:使用函數創建哈希
sub newhash {
$data = shift;
$left = undef;
$right = undef;
%node = ("data"=>$data,"left"=>$left,"right"=>$right);
return (\%node);
}
$firstele = newhash(2);
foreach (keys %$firstele)
{
print "$_:$firstele->{$_}\n";
}
$node = newhash(1);
foreach (keys %$node)
{
print "$_:$node->{$_} \n";
}
foreach (keys %$firstele)
{
print "$_:$firstele->{$_}\n";
}
麻煩的是,當我打印的原始哈希值,數據鍵得到由不管我是誰傳遞給newhash
功能所取代。輸出:
left:
right:
data:2
left:
right:
data:1
left:
right:
data:1
任何想法爲什麼數據密鑰被替換?
務必使用'use strict;使用警告;'! – ikegami 2014-09-29 05:18:04