0

の文字列に対してループを実行しようとしていますが$ACES_1_keyCan't use string ... as an ARRAY ref while "strict refs" in use.

my $ACES_1_key = ("`NIL-RETURN`,`ASSESSEE-NAME`,`LTU`,`MONTH`,`RETURN-YEAR`,`REGISTRATION-NUMBER`");

foreach my $key (@$ACES_1_key) {
  print $key;
}
4

2 に答える 2

2

レキシカル変数名には大文字を使用しないでください。これらは、パッケージ名などのグローバル識別子用に予約されています。

最初に配列参照を設定しようとしている場合は、次のようなものが必要です。

my $aces_1_key = [ qw[ NIL-RETURN ASSESSEE-NAME LTU MONTH RETURN-YEAR REGISTRATION-NUMBER ] ];

foreach my $key (@$aces_1_key) {
  print $key, "\n";
}

出力

NIL-RETURN
ASSESSEE-NAME
LTU
MONTH
RETURN-YEAR
REGISTRATION-NUMBER

または、個々の部分文字列に分割する必要がある文字列がある場合は、いくつかの方法があります。以下のプログラムはその 1 つを示しています。文字列をコンマで分割して、引用符で囲まれた部分文字列のリストを生成します。次に、を使用してループ内で引用符が削除されますtr//。出力は前の例と同じです。

my $aces_1_key=("`NIL-RETURN`,`ASSESSEE-NAME`,`LTU`,`MONTH`,`RETURN-YEAR`,`REGISTRATION-NUMBER`");

foreach my $key (split /,/, $aces_1_key) {
  $key =~ tr/`//d;
  print $key, "\n";
}
于 2013-09-17T09:54:27.607 に答える