加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

现在禁止标量的实验值 – perl

发布时间:2020-12-15 23:28:43 所属栏目:大数据 来源:网络整理
导读:现在,旧软件中禁止使用标量的实验值: $link = Winners::Links-new();my @fields = $link-column_names; foreach my $field ( values @fields[0]) { 我试图做: foreach my $field ( values {@fields[0]}) { foreach my $field ( values %{@fields[0]}) { fo
现在,旧软件中禁止使用标量的实验值:

$link = Winners::Links->new();
my @fields = $link->column_names;     
foreach my $field ( values @fields[0]) {

我试图做:

foreach my $field ( values {@fields[0]}) {

 foreach my $field ( values %{@fields[0]}) {

 foreach my $field ( values %@fields[0]) {

不是他们的作品.任何想法应该怎么做?谢谢.

以下是@fields对象定义的更多内容:

[[
  'id','entry','selection','status'
]]

解决方法

这是在Perl 5.14中添加的,但在5.23中删除了:

Experimental %s on scalar is now forbidden (F) An experimental
feature added in Perl 5.14 allowed each,keys,push,pop,shift,
splice,unshift,and values to be called with a scalar argument. This
experiment is considered unsuccessful,and has been removed. The
postderef feature may meet your needs better.

因此,如果您在引用上使用它,请先取消引用它.有
由于你的原始代码,到达这里有些困惑:

foreach my $field ( values @fields[0]) {

这里@fields [0]实际上是一个切片,它是有效的,并且有效.但
严格和警告你会得到类似的东西:

Scalar value @fields[0] better written as $fields[0] at - line x.

事实上,如果你正在访问一个项目(如参考,可能在你的
case)你应该使用$fields [0]代替.所以首先纠正一下,
然后取消引用以符合标准的价值要求
(作为一个列表.它仅接受标量作为实验特征
过去).

foreach my $field ( values %{$fields[0]})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读