在Perl中的一行中创建一个Array Ref

Kir*_*gle 3 arrays perl reference

我正在思考是否可以在Perl中的一行中创建数组引用的问题.有点像你定义一个数组.我通常会做以下事情:

#!/usr/bin/perl
# your code goes here
use warnings;
use strict;
use Data::Dumper;

my @array = qw(test if this works);
my $arrayref = \@array;
print Dumper($arrayref);
Run Code Online (Sandbox Code Playgroud)

我的想法是你应该能够做到的:

my $arrayref = \(qw(test if this works);
Run Code Online (Sandbox Code Playgroud)

然而,这不符合我的预期.这甚至可能吗?

Zzy*_*yzx 9

你可以通过使用'square-bracketed anonymous array constructor'来做到这一点.它将创建一个数组引用'literal'

my $arrayref = [ qw(test if this works) ];
Run Code Online (Sandbox Code Playgroud)

或列出每个成员:

my $arrayref = [ 'test', 'if', 'this', 'works' ];
Run Code Online (Sandbox Code Playgroud)

您可以使用Data Dumper验证两个结果:

$VAR1 = [
          'test',
          'if',
          'this',
          'works'
        ];
Run Code Online (Sandbox Code Playgroud)