下面是会产生错误的代码:
#!/usr/bin/env perl
use strict
use warnings FATAL=>'all';
use ExtUtils::Installed;
my $instmod = ExtUtils::Installed->new();
foreach my $module ($instmod->modules())
{
my $version = $instmod->version($module) || "???";
print "$module -- $version\n";
}
只是不要使用“;”严格使用
错误:
syntax error at ListModules.pl line 3, near "use strict
use warnings "
Execution of ListModules.pl aborted due to compilation errors.
Perl 版本信息:
This is perl 5, version 12, subversion 4 (v5.12.4) built for x86_64-linux-gnu-thread-multi
最佳答案
简而言之,没有。但这并不是那么简单。
语法错误和人为错误是有区别的。你的人为错误是省略了第 2 行末尾的 ;
,但这导致了第 3 行的语法错误。你的计算机无法知道你打算写一个 ;
在第 2 行,尝试猜测会适得其反。
只有事后诸葛亮——您可以记住自己的意图——您才能看到错误输出与您亲眼所见之间的差异。
总之,输出是正确的;它只是报告与您正在寻找的东西略有不同的东西……而您正在寻找的东西是棘手的。学习阅读错误消息并将其转化为您发现人为错误所需的知识是一项非常宝贵的程序员技能,并且通过实践自然而然地获得。
关于perl - 有没有办法让 Perl 报告错误的确切行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12769347/