-2

私はPerlにかなり慣れていません。私はCGIを作成し、別のサブルーチンを呼び出してHTMLを表示するサブルーチンを呼び出し、2番目に呼び出されたサブルーチンでmysql selectステートメントを実行し、fetchrow_arrayを使用して配列を設定しています。その配列を、HTMLを表示するサブルーチンに戻します。

my @agentval = &GetAgent();
my $agentval1;

foreach (@agentval) {
    $agentval1 = $_;
}

変数を宣言してから、エラーの各値をスカラー変数に出力しようとしていますが、26個のスカラー変数すべてを宣言していません。変数を使用して、表示されたCGIのフィールドの値を設定しています。

私はこれを達成できると思っていました

my @agentval = &GetAgent();
my $agentval1;

foreach (@agentval) {
    $agentval1 = $_;
    $agentval1++;
}

$ agentval1($ agentval2 ... n)以降のすべてに明示的なパッケージ名が必要です

私が言ったように、私は全くの初心者です。前もって感謝します!

4

2 に答える 2

2

Perlでは「変数名をインクリメント」することが可能です。おそらく簡単です。しかし、それが仕事に適したアプローチになることはめったにありません。

と呼ばれるPerl配列に最大26個の値があり、@agentvalそれらを26個の関連するスカラーにロードしたいとします。配列は単なるスカラーのコレクションであるため、すでにそれを行っています。特定の値にアクセスする場合は、次の$array[index]表記を使用します。

print "<input type='text' name='field10' value='$agentval[9]'>\n";

ここで$agentval[9]は、配列の10番目の要素(他の多くの言語と同様に、インデックス0は配列の最初の要素であるため)を指し@agentvalます。

于 2013-03-05T22:30:32.857 に答える
0

@agentval配列のすべての内容で変数を作成しようとしていますか?この場合、foreachループを変更します。

foreach (@agentval) {
    $agentval1 .= $_;
}
于 2013-03-05T22:20:24.267 に答える