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

现在禁止标量的实验值 – perl,第1张

概述现在,旧软件中禁止使用标量实验值: $link = Winners::Links->new();my @fields = $link->column_names; foreach my $field ( values @fields[0]) { 我试图做: foreach my $field ( values {@fields[0]}) { foreach my $field ( 现在,旧软件中禁止使用标量的实验值:

$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]})
总结

以上是内存溢出为你收集整理的现在禁止标量的实验值 – perl全部内容,希望文章能够帮你解决现在禁止标量的实验值 – perl所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1267877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存