谁能解释这个引用函数如何使用这个perl子例程?

问题描述 投票:0回答:1

这是我无法理解的子程序,我试图传递一些数组和哈希作为参数,但无法弄明白

sub List {

        my $value = shift;
        my $key = shift; 

     if (ref($value->{$key}) eq ARRAY) {

        $value->{$key}
     }
     elsif (ref($value->{$key}) eq HASH) {
        [$value->{$key}]
     }
     else { [
     ]
     }
    }
perl subroutine
1个回答
3
投票

第一个参数应该是对哈希的引用。

第二个参数是引用哈希元素的键。

如果元素的值是对数组的引用,则返回该引用。

my @a = ...;
my %h = { key => \@a };
List(\%h, 'key')   # Returns \@a

如果元素的值是对散列的引用,则返回对包含该散列引用的数组的引用。

my %inner = ...;
my %h = { key => \%inner };
List(\%h, 'key')   # Returns [ \%inner ]

否则,返回对空哈希的引用

my %h = { };
List(\%h, 'key')   # Returns []
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.