我有代码尝试多次调用函数,给定一个列表。我有一个for()
循环,然后在循环内部我调用该函数。但是在函数调用的行上,我得到一个奇怪的错误:
[Thu Aug 8 08:31:37 2013] x.cgi: "my" variable $_ masks earlier declaration in same statement at /usr/home/x/public_html/cgi-bin/x.cgi line 310.
[Thu Aug 8 08:31:37 2013] x.cgi: "my" variable $_ masks earlier declaration in same statement at /usr/home/x/public_html/cgi-bin/x.cgi line 310.
错误很奇怪,因为该行根本没有my
。
这是我的代码,使用perl 5运行。
sub cgiPrintForm {
my $fh = shift;
for (qw!betatest subscribe fname lname position department company address1 address2 city province postalcode country phone fax email hearofus comments!)
{
print $fh "\n$_: ",param($_) if defined(param($_));
}
print $fh
"\nReferer: ",referer(),
"\nRemote Host: ",remote_host(),
"\nRemote IP: ",remote_addr(),
"\nRemote Ident: ",remote_ident(),
"\nUser Agent: ",user_agent(),"\n";
}
显然,Perl的一些魔法出错了,自动my
让我感到困惑。
答案 0 :(得分:0)
此错误消息通常表示您在发生错误的行之前忘记了分号。我会在此子定义之前立即查看可能的错误。 - amon Aug 8 '13 at 14:23
@ amon的评论是正确的;我在另一部分中出现错误,直到此时才检测到(这是一个缺失的引号或大括号或其他内容)。