相关疑难解决方法(0)

如何使用散列作为Perl中子例程的参数?

我有一个函数正在进行一些计算,然后将一些属性传递到另一个子例程,如下所示:

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)

perl hash reference

7
推荐指数
2
解决办法
9752
查看次数

标签 统计

hash ×1

perl ×1

reference ×1