我有一个函数正在进行一些计算,然后将一些属性传递到另一个子例程,如下所示:
sub get_result {
my $id = 1;
my %diet = ( result => 28,
verdict => 'EAT MORE FRUIT DUDE...'
);
my %iq = ( result => 193,
verdict => 'Professor Einstien'
);
print_result($id, %diet, %iq);
}
sub print_result {
my $id = shift;
my %d = @_;
my %i = @_;
print "IQ: $id\n";
print "DIET RESULT: $d{result}\n";
print "DIET VERDICT: $d{verdict}\n";
print "IQ RESULT: $i{result}\n";
print "IQ VERDICT: $i{verdict}\n";
}
Run Code Online (Sandbox Code Playgroud)
我的问题是在(DIET RESULT,DIET VERDICT)和(IQ SCORE,IQ RESULT)中打印的结果都是相同的.好像变量%d和%i正在填充相同的变量.任何想法为什么会这样?
如果我尝试移动所有三个变量,如下所示:
my …Run Code Online (Sandbox Code Playgroud)