我在 Perl 中有以下代码,其中哈希引用从主函数传递到 func1,然后传递到 func2。在 func2 中,哈希被更新。我想在主函数中访问更新的哈希。主函数中还有一个while循环,我希望在每次迭代期间都应该更新哈希值。代码可能看起来不合逻辑,但我刚刚编写了代码的骨架。当我尝试在主函数中打印散列时,我总是得到空散列
sub main {
my %hash1;
while (some condition)
{
my $i=0;
if($i==0)
{
func1($i,\%hash1);
$i=1;
}
else
{
func1($i,\%hash1);
$i=0;
}
}
foreach my $a (keys %hash1)
{
print "$hash1{$a}";
}
}
sub func1
{
my ($i,$hash1)=@_;
----
if($i==0)
{
func2($hash1);
}
}
sub func2
{
my ($hash2)=@_;
$hash2->{key1}=1;
$hash2->{key2}=2;
}