首页 > 解决方案 > 后缀取消引用 say((\@a)->@*) v5.22

问题描述

我已经阅读了有关后缀取消引用的信息,并且想尝试一下,但是我无法使这个简单的示例起作用。

use v5.22;
my @a = ('hello', 'bye', 'see you');
say((\@a)->@*);

我应该打印数组,但我得到的只是:

数组在 hola.pl 第 3 行的预期运算符位置,在行尾(在 ? 之前缺少运算符)在 hola.pl 第 7 行,“->@”附近出现语法错误

我的 perl 版本是:

这是为 x86_64-linux-gnu-thread-multi 构建的 perl 5,版本 22,subversion 1 (v5.22.1)

标签: perl

解决方案


该功能可以按如下方式激活:

use feature qw( postderef );
no warnings qw( experimental::postderef );

这可以简化为

use experimental qw( postderef );

postderef功能也由use feature ':5.24';(因此由use v5.24;)激活,但它由 noor 激活use feature ':5.20';use feature ':5.22';因此由 nooruse v5.20;激活use v5.22;),因为该功能在 5.20 和 5.22 中仍处于试验阶段。

该功能在 5.20 和 5.24 之间没有变化,因此在 5.20 和 5.22 中使用是安全的,因此忽略警告是安全的。


推荐阅读