在perl中不推荐使用数组作为参考

时间:2019-05-21 10:15:54

标签: perl

获得错误:在perl脚本中,不建议使用数组作为引用

请提出建议,以下代码有什么问题。

$sqlsyntax="exec Stored_Procedure,\@ErroeCode='$ErrMsg`"; 
@ret = $dbh->nsql ($sqlsyntax,"ARRAY");

my($EntityId,
$MaturutyDate);
my($size,$index,$count);
$size=scalar @ret;
$index=0;
$EntityId=@ret->[$index][0];
$MaturutyDate=@ret->[$index][9];

此perl在Solaris上运行良好,但是当将其迁移到Linux环境时,则会出现此错误。

获得错误:在perl脚本中,不建议使用数组作为引用

在编译过程中出现此错误,想要在Linux环境中修复此错误。

1 个答案:

答案 0 :(得分:4)

我不确定您从何处获取此代码,但它使用的Perl语法非常旧,您不应该在很长时间内就使用过。 [更新:正如ikegami在下面的评论中所指出的那样,这不是非常古老的Perl语法-该语法仅由于Perl中的一个错误而起作用,并且不应该使用。

@ret->[$index][0]

此代码使用以下事实:在某些情况下,可以将数组用作数组引用。您不应该这样做,因为还有其他(更简单的)方法可以执行相同的操作。如您所见,此语法已过时。

您的代码应写为$ret[$index][0]。如果将其更改为这样,则警告将消失。

更新

  

此perl在Solaris上运行良好,但是当将其迁移到Linux环境时,则会出现此错误。

我想这是因为您的Solaris系统运行的是Perl的旧版本。在两个系统上都运行perl -v会得到什么?