2

以下是会产生错误的代码:

#!/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
4

2 回答 2

7

简而言之,没有。但这并不是那么简单。

语法错误和人为错误是有区别的。您的人为错误是省略了;第 2 行末尾的 the,但这导致第 3 行出现语法错误。您的计算机无法知道您打算;在第 2 行写 a,这将是反 -让它尝试猜测很有成效。

只有事后诸葛亮——你对你的意图有记忆——你才能看到错误输出和你用眼睛看到的东西之间的差异。

总之,输出正确的;它只是报告与您正在寻找的东西略有不同的东西......而您正在寻找的东西是难以处理的。学习阅读错误消息并将其转化为发现人为错误所需的知识是程序员的一项宝贵技能,它随着实践自然而然地出现。

于 2012-10-07T13:50:53.273 回答
0

第 2 行没有错误。你可以写

use strict
   'vars';

并且可以通过更改您写入的内容来解决问题

use strict
;use warnings;

语法错误出现use在表达式的中间,发生在第 3 行。

于 2012-10-07T18:19:07.687 回答