【Perlでエラーあるある】Perlで実行時にエラーが出たらまずはこれを疑え


他の言語を使っていると、Perlでミスるときがあります。

ただ、サーバで動作させる場合、デバッグに手間がかかる。

と、いう訳で、とりあえずありがちなミス一覧。


変数名に$付け忘れる

あるあるです。


if で { } の付け忘れ

特に、他の言語と違って、一行で完結するif 文でも if (xxx==0) { 〜;  }

のように必要なので、付け忘れないようにしましょう。


注釈を // とかにしている

あるある。 /*  */ としてしまうことも。

Perlの注釈は # です。


"の中に " がある。\" にし忘れている

あるある

HTMLを記述するとよくありがち。

\"にするのが面倒な場合は、シングルコーテーション ' ' で囲む方が楽です。

print '<table border="1" cellspacing="0" cellpadding="5" width="590" bgcolor="#FFFEDD" >';

など。

 


スペースだと思ったら全角漢字の空白だった

これは結構あるあるです。

全角スペースが見えるエデッタの使用や、全角スペースで検索するなどして、チェックしてみてください。


変数展開に失敗

変数が間違って認識されてしまった。

${変数名} にして明確にする。


実行属性に変更し忘れ

サーバで実行属性に変更し忘れていることあるある。

例えば パーミッションを 705 や 707 に変更する。

拡張子の指定があるときは、変更しておく。たとえば .cgi にするなど。


FTPの「バイナリーモード」で転送

cgiプログラムをFTPで「バイナリーモード」で転送すると実行できない場合があります。

(さくらインターネットなど)

その場合、「アスキーモード」にして転送します。

FFFTPでは、拡張子ごとに転送モードを設定する機能などもあります。

 


perl のパス間違い

テストしている環境と、実際のサーバで、perlのパスが違う時は、修正しておきましょう。

 


文字が化ける(表示→侮ヲ)

実行時エラーではないですが、文字が化けるときがあります。

特に「表示」という文字。「侮ヲ」になってしまいます。(ヲは半角)

print "表示";  → 「侮ヲ」

こんな時は

print "表\示";  → 「表示」

print '表示";  → 「表示」

として対処します。


★その他のテクニックは、以下のパソコン・スマホテクニックサイト( https://dsstation.sakura.ne.jp/PC/ )ありますので、適宜参照してください。

※IEのみボタンが動作します


※ここから先は広告です。もし、ご興味があればご参照してください。

東京ディズニーランドへ行く場合は、高速バスで価格を抑えつつも、ホテル付きでゆったりすごせるプランが結構人気です。

高速・夜行バス予約サイト WILLER TRAVEL これも一度チェックしてみる価値ありです・・・

<リンク集>ビジネスホテルなどが安く予約できるサイトへのリンク集