1

Perl の初心者として、コンパイル エラーが発生することがあり、それを見つけるために多くの検索を行う必要があります。最終的には、行末にセミコロンがないだけです。セミコロンがないいくつかの構文エラーは Perl によってチェックされますが、一般的にはチェックされません。このチェックを取得する方法はありますか?

編集:

Perl::Critic については知っていますが、使用できません。また、一般的にセミコロンの欠落をチェックするかどうかはわかりません。

4

3 に答える 3

2

セミコロンは実際には Perl で何かを意味し、装飾のためだけにあるわけではないため、ツール (Perl インタープリター自体でさえも) が、実際にセミコロンを省略するつもりだったかどうかを常に知ることはできません。したがって、あなたの質問に対する一般的な回答はありません。コードを調べて、それが正しいことを確認するだけです。

私のコメントで述べたように、間違っている可能性のある行を見つけるプロセスを促進するために、エディターで試すことができるさまざまなトリックがあります。ただし、これらを手動で調べて修正するか、新しい問題が発生する危険を冒す必要があります。

于 2013-07-31T08:03:25.883 に答える
1

構文チェックは ですperl -cが、プログラムを完全に実行しようとするのと同じです。柔軟で決定不能な構文のため、一般的にはやりたいことができません。それが快適さと表現力のマイナス面です。

最新の安定した Perl にアップグレードすると、パーサーのエラー メッセージが過去数年間で改善/正確になり、セミコロンが欠落している多くの状況を正しく認識します。

多くのパーサー/他の言語で機能する経験則: エラーが意味をなさない場合は、数行前を調べてください。

于 2013-07-31T08:05:08.830 に答える
1

use diagnostics;と同じように、通常は適切なヒントが得られますuse warnings;。一貫したコーディング スタイルを維持するようにしてください。 perlstyleを確認してください。また、Perl::Critic オンラインを使用することもできます。

また、一般的なアドバイスとして、パッケージとモジュールの使用方法を学び、コードをサブグループにグループ化し、配列、リスト、およびハッシュの構文を研究してみてください。よくある間違いは;、無名の hashref 割り当ての後に を忘れることです:

my $hashref = { a => 5, b => 10};
于 2013-07-31T08:14:07.960 に答える