目次:
ビデオ: Paul Gilding: The Earth is full 2025
Perlプログラムの作成中にタイプミスを入力することは珍しいことではありません。しかし、テキスト入力スリップアップを含むプログラムを実行しようとすると、Perlは通常混乱し、エラーを報告することによってあなたに伝えます。何年ものプログラミング経験を持つ人でさえも、ほとんどの人にとって自然な反応は、エラーメッセージが表示されたときに心配したり、怒ったりすることです。
慌てないでください。深呼吸する。もう一回ゆっくりと深呼吸してください。真剣に、もしあなたがすべて緊張していて、悩まされているなら、あなたは問題の根底に辿り着くことはできません。何年に渡ってプログラムしても、あなたは書かれたコードに何らかの誤りを見つけることになります。
<! Perlが他のほとんどのプログラミング言語よりも有用なエラーメッセージを持っているという事実を理解し始めることができます。------->メッセージは必ずしもお金の上にあるわけではありませんが、問題のある場所に近いところにあなたを近づけることができます。
Perlには数多くのエラーメッセージがありますが、みんなが作るようないくつかの共通のタイプミスのために、いくつかのメッセージは間違いなく他のものよりも大きくなります。あなたが簡単に避けることができる小文字の入力ミスにより、次のようなエラーが発生します。
<!セミコロンを忘れる
Perlでプログラミングするときに表示される最も一般的なエラーメッセージは、
#syntax error、 "open"
File 'counter1のようなものです。 p1 '; 10行目
#コンパイルエラーにより実行が中止されました。
openステートメントを使用している行10を見て見ることができますが、何も間違って表示されることはありません。このトリックは、openステートメントの前に 来るステートメントを調べ、セミコロンで終わるかどうかを調べることです。 (Perlは、文がセミコロンに遭遇したときだけステートメントが終了することを知っています)。この場合、エラーはプログラムの7行目の最後にセミコロンがないために発生します: <! - 3 - >
$ TheFile = "sample。引用符を忘れる簡単な修正が分からない場合は、次のようなエラーメッセージが非常に不快になります。
(INFILE、$ TheFile)または "The"
#(
#line 7で始まる暴走した複数行の文字列)
File 'counter1。 p1 '; Line 10
このエラーは、セミコロンを忘れることに似ています。代わりに、それは誤って省略された引用符です:
$ TheFile = "sample。 TXT;
この場合、Perlは何が間違っているのかを推測する良い仕事をしました.Line 7の暴走した複数行の文字列が問題です。これは正確です。
括弧の数が多すぎるまたは少なすぎる
プログラムに開閉括弧がたくさんある場合、余分なものを실수に引っ込めるのは簡単です。そうであれば、Perlから
#syntax error、near ")eq"
File 'counter1のようなメッセージが表示されることがあります。 p1 ';行38
#構文エラー、 "}"
ファイル 'counter1の近く。 p1 '; Perlはエラーの正確な場所を特定することはできませんが、実際には最初の推測で正しいものになっています:38行目に余分な右かっこが入ります:
if(substr($ TheLine、$ CharPos、
#暗黙の左引数として定数項目を使用することはできません - >、
# Perlプログラムで括弧が少なすぎると、 "1}"
ファイル 'counter1の近くにあります。 p1 '; Line 39
# "$ CharPos"
File 'counter1の近くでオペレータが期待した場所にスカラーが見つかりました。 p1 '; 4099行目999#(前の行にセミコロンがない?)
#構文エラー、 "$ CharPos"
ファイル 'counter1の近く。 p1 '; Line 40
ヤープ!
if(substr($ TheLine、$ CharPos、1)eq ""
ここで、入力エラーを捜す際のもう一つの良い教訓は次のとおりです。エラーが見つからない場合は、1行か2行上に移動し、問題が早期に開始されたかどうかを確認してください。
最後のアドバイス:単純なタイプミスを見つけるためにPerlを信頼してくださいあなたができるすべての助けをあなたに与えていることを忘れないでください。これは、多くのプログラミング言語について言えるほどです。
