perl - 后缀取消引用 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)
解决方案
该功能可以按如下方式激活:
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 中使用是安全的,因此忽略警告是安全的。
推荐阅读
- jquery - 滑块卡在第一张幻灯片上
- java - 接受具有特定注释的对象的参数
- java - 如何在没有地图的情况下通过搜索获取地址列表?
- interface - 面向数据设计中的接口
- jenkins - 如何在外部函数中定义 Jenkinsfile 的并行阶段?
- c# - 为什么这个 C# ctor 中的可维护性指数如此之低?
- ubuntu - EOS 在 VirtualBox 上实现 Ubuntu 16.04
- dart - Flutter - fill list with firebase collection
- javascript - 将输入键更改为选项卡
- c# - Macos上c#.net核心调用终端的奇怪问题