Perl子例程参数就像一个哈希

net*_*djw 9 parameters perl arguments

如何创建一个可以解析这样的参数的子例程:

&mySub(arg1 => 'value1', arg2 => 'value2' ...);

sub mySub() {
    # what do I need to do here to parse these arguments?
    # no arguments are required
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*arl 17

只需将输入数组分配给哈希:

sub my_sub {
    my %args = @_;
    # Work with the %args hash, e.g.
    print "arg1: ", $args{arg1};
}
Run Code Online (Sandbox Code Playgroud)

如果要提供默认值,可以使用:

sub my_sub {
    my %args = ( 'arg1' => 'default arg1',
                 'arg2' => 'default arg2',
                 @_ );
    # Work with the (possibly default) values in %args
}
Run Code Online (Sandbox Code Playgroud)