2013-12-21 11 views
6

私はperlの理解から、エラーメッセージは私には$ somethingと呼ばれる宣言されていない変数があると思いますか?

Global symbol "$as" requires explicit package name at filename.pl 

私の混乱は、すでにforeachの中で宣言されていないされて$として:私が言ってとしてエラーに$を取得

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

:私は、次のようなのforeach文を持っています声明?次のとおり:

my $ as? foreachキーワードの前に

ありがとうございます。あなたの考えは高く評価されています!

更新

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

はい、 '$ as'変数はそのforeachループで宣言されています。そのエラーが発生した行番号を確認し、その行が指す行を確認します。 – TLP

+0

あなたがフィードバックで返信する場合、私は出発する前にあなたを助けることができるかもしれません。 – TLP

+0

@TLP実際のコードを編集の更新として追加します。10秒後に更新してください:)実際には変数を使用する行を指しています。 –

答えて

3

要求されるように、答えとしてコメントを投稿します。

エラーは2つのことになります

  1. $asはどこか別の場所に見られています。
  2. my $as宣言を中断するループに対して、何らかの種類の構文エラー(かっこ、セミコロンなどがありません)があります。
関連する問題