这个错误激怒了我。我在括号错误或缺少括号的行附近看不到任何内容。有人帮我一把吗?这是我的第一篇文章,如果格式化关闭,请原谅我;我想我做对了。
编辑:第87行,');'错误,是这一行:select(SEXTANT_DAEMON_LOG);
syntax error at -edited- line 87, near ");"
syntax error at -edited- line 92, near "if"
syntax error at -edited- line 99, near "if"
Unmatched right curly bracket at -edited- line 102, at end of line
syntax error at -edited- line 102, near "}"
syntax error at -edited- line 109, near "}"
syntax error at -edited- line 120, near ");"
BEGIN not safe after errors--compilation aborted at -edited- line 122.
这是错误附近的代码(full code here):
$MAIN_DBH = getConnection('Main');
$fs_logfile = getCSConfigValue($MAIN_DBH, 'Log', 'Sextant Update Daemon') or die "pid$$[" . localtime(time()) . "] Main dbh error: " . DBI::errstr;
open(SEXTANT_DAEMON_LOG, '>>', $fs_logfile) or die "pid$$[" . localtime(time()) . "] unable to open log file '$fs_logfile'\n";
$tmp = select(SEXTANT_DAEMON_LOG);
$| = 1;
select(SEXTANT_DAEMON_LOG);
答案 0 :(得分:11)
Perl没有提供非常好的错误消息,但实际上抱怨的是"pid$$["
看起来像是无效尝试访问数组@$
。尝试将其替换为"pid$$\["
。
我发现的方法是在第一个错误的报告位置附近插入__END__
。我上下移动它,直到找到导致错误的第一行,即
$fs_logfile = getCSConfigValue($MAIN_DBH, 'Log', 'Sextant Update Daemon') or die "pid$$[" . localtime(time()) . "] Main dbh error: " . DBI::errstr;
然后我尝试添加反斜杠,并修复了错误。
注意:perl -c
在这种情况下非常有用。