我遇到了一個相當奇怪的問題。我只是試圖通過循環存儲輸入名稱的數組以及與該名稱關聯的註釋來顯示用戶輸入的註釋。Perl CGI打印格式
#Check through each name
for (my $i = 0; $i < scalar @$namesRef; $i++)
{
#Display the comment to the user
print @$namesRef[$i].": "[email protected]$commentsRef[$i], p;
}
在顯示評論的頁面上,而不是像'John:comment'那樣顯示它,它顯示爲'Johncomment:'。另外,',p'不包括在內,所以下一條評論不會換成新的一行。
我會提出了一個圖像,以便更好地說明問題的是什麼,但我沒有足夠的代表尚未:/
編輯:@ -signs在那裏,因爲這些都是這個之外數組引用子程序。
編輯:初始數組在這個子例程中聲明。
sub buildForm { my $ form = shift; #檢查哪個按鈕被按下。
my $daysOld = 0; #Holds how many days old the user is.
my $commentErrors = 0;
my @names =();
my @comments =(); #Array to store the user's comments.
my @errorMessages =(); #Array to store the error messages for the current form.
以下是其中的註釋的形式調用子程序:
elsif ($form == 3)
{
&readComments(\@comments, \@names, \@errorMessages); #Read in the comments.
#Initial build - Can't have any errors.
&build3(\@comments,\@names, \@errorMessages, $commentErrors, param('name'), param('comment'));
}
elsif ($form == 4)
{
$commentErrors = &commentFormErrorCheck(param('name'), param('comment'), \@errorMessages); #Check for an errors.
&build3(\@comments,\@names, \@errorMessages, $commentErrors, param('name'), param('comment'));
}
在這種情況下,你不需要'''在你的子呼叫之前。 – codnodder