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行目の終わりでを省略することでしたが、これにより3行目で構文エラーが発生しました。2行目で;書くつもりだったことをコンピュータが知る方法はありません。;推測しようとするのは生産的です。

エラー出力と目で見つけたものとの違いを見ることができるのは、後知恵の恩恵を受けてのみです—あなたはあなたの意図の記憶を持っています—。

結論として、出力正しいです。それはあなたが探しているものとは微妙に異なる何かを報告しているだけです...そしてあなたが探しているものは手に負えません。エラーメッセージを読み、ヒューマンエラーを見つけるために必要な知識に変換することを学ぶことは、非常に貴重なプログラマーのスキルであり、それは当然のことながら実践に伴います。

于 2012-10-07T13:50:53.273 に答える
0

2行目にエラーはありません。

use strict
   'vars';

そして、あなたが書いたものを変更することによって問題を修正することができます

use strict
;use warnings;

構文エラーはuse式の途中にあり、3行目で発生します。

于 2012-10-07T18:19:07.687 に答える