全局符号"$ variable"需要在filename.pl上显式包名

6 perl

根据我对perl的理解,我认为错误消息意味着我有一个未声明的变量,例如$ something?我有一个foreach声明:

foreach my $as (@ARRAYY) {
            $db-> execute($as->[1],$as->[0],$Key);
        } 
Run Code Online (Sandbox Code Playgroud)

我在$上收到错误说:

Global symbol "$as" requires explicit package name at filename.pl
Run Code Online (Sandbox Code Playgroud)

我的困惑是,在foreach声明中是否已经声明了$?如:

我的$是?在foreach关键字之前?

谢谢你的阅读.非常感谢您的想法!

更新

foreach my $as (@ASPATH) {
            #print "\tASPATH : $as->[0]","\t" ;
            #print "\tASINDEX : $as->[1] \n" ;
            $as_path->execute($as->[1],$as->[0],$UpdateKey);
        } 
Run Code Online (Sandbox Code Playgroud)

TLP*_*TLP 3

根据要求发布评论作为答案。

该错误可能有两件事:

  1. $as在其他地方看到。
  2. 在 for 循环上方有某种语法错误(缺少括号、分号等),这会中断声明my $as