-2

我对 Perl 很陌生。我正在编写一个 CGI,调用一个调用另一个子例程并显示 HTML 的子例程,在第二个调用的子例程中,我正在执行一个 mysql select 语句并将其设置为一个带有 fetchrow_array 的数组。我将该数组返回为显示 HTML 的子例程。

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

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

我声明了我的变量,然后尝试将 erray 的每个值打印到一个标量变量中,但没有声明所有 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 回答