可以在不首先声明变量的情况下进行引用吗?

San*_*ing 6 arrays perl hash reference perl-data-structures

我有这个代码有效

my @new = keys %h1;
my @old = keys %h2;

function(\@new, \@old);
Run Code Online (Sandbox Code Playgroud)

但是可以在不必先声明变量的情况下完成吗?

function必须将其参数作为参考.

Nik*_*ain 7

use strict;
use Data::Dumper;

my %test = (key1 => "value",key2 => "value2");
my %test2 = (key3 => "value3",key4 => "value4");

test_sub([keys %test], [keys %test2]);

sub test_sub{
 my $ref_arr = shift;
 my $ref_arr2 = shift;
 print Dumper($ref_arr);
 print Dumper($ref_arr2);
}
Run Code Online (Sandbox Code Playgroud)

输出:

$VAR1 = [
          'key2',
          'key1'
        ];
$VAR1 = [
          'key4',
          'key3'
        ];
Run Code Online (Sandbox Code Playgroud)


Eug*_*ash 6

function([ keys %h1 ], [ keys %h2 ]);
Run Code Online (Sandbox Code Playgroud)

来自perldoc perlref:

可以使用方括号创建对匿名数组的引用:

$ arrayref = [1,2,['a','b','c']];