获得错误:在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环境中修复此错误。
答案 0 :(得分:4)
我不确定您从何处获取此代码,但它使用的Perl语法非常旧,您不应该在很长时间内就使用过。 [更新:正如ikegami在下面的评论中所指出的那样,这不是非常古老的Perl语法-该语法仅由于Perl中的一个错误而起作用,并且不应该使用。
@ret->[$index][0]
此代码使用以下事实:在某些情况下,可以将数组用作数组引用。您不应该这样做,因为还有其他(更简单的)方法可以执行相同的操作。如您所见,此语法已过时。
您的代码应写为$ret[$index][0]
。如果将其更改为这样,则警告将消失。
更新:
此perl在Solaris上运行良好,但是当将其迁移到Linux环境时,则会出现此错误。
我想这是因为您的Solaris系统运行的是Perl的旧版本。在两个系统上都运行perl -v
会得到什么?