You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl新版本报错:Experimental keys/push on scalar禁用,求快速修复方案

修复Perl新版本中的两个实验性语法报错

错误1:Experimental keys on scalar is now forbidden

问题原因

$grammar->{$groupName}是哈希引用,旧版Perl允许直接对哈希引用使用keys(实验性语法),但新版本Perl已禁止这种写法,要求明确解引用哈希引用。

修复代码

将原代码:

foreach my $elemName(keys $grammar -> {$groupName})

修改为:

foreach my $elemName(keys %{ $grammar->{$groupName} })

%{ ... }用于将哈希引用强制解引用为哈希,让keys能正确遍历其键名。

错误2:Experimental push on scalar is now forbidden

问题原因

$DbRef->{def_param}{$par_descr}->{dataset}是数组引用,旧版Perl允许直接对数组引用使用push(实验性语法),新版本要求必须明确解引用为数组。

修复代码

将原代码:

push($DbRef->{def_param}{$par_descr}->{dataset}, $blkDs);

修改为:

push @{ $DbRef->{def_param}{$par_descr}->{dataset} }, $blkDs;

@{ ... }用于将数组引用强制解引用为数组,让push能正确向其中添加元素。

内容的提问来源于stack exchange,提问作者Shawn Lammers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:15:26