EBSに役立つPerl講座

致命的エラーを防ぐために

どんなに注意しても人間、必ずミスはするものです。 それを踏まえた上で、例えエラーが発生しても損害を最小限に抑え、効率的に解決していく方法を助言していきたいと思います。

バックアップは必ず取ろう。

何かの改造をするときは、必ず関連するファイルのバックアップを取っておきましょう。 改造してみたけどエラー発生、そのまま直すことが出来なければまた一からやり直しになってしまいます。 元のファイルがあれば何処をミスしたのかも解り易いでしょう。 また、未改造のデフォルトファイルも一つ取っておきましょう。

テストはこまめに。

大きな改造である場合は特に、改造途中でもこまめに動作テストを行うことをおすすめします。 改造が完了してからエラーが見つかった場合、何処でミスしたのか見当がつけにくいからです。 また“この部分の改造で何が変化したのか”というのが見えるので、改造の詳細を理解しやすいことでしょう。

やり直し機能を活用

エラー発生時にものをいうのが、やり直し機能です。 メモ帳などでは1回しか出来ませんから、出来るだけ“無限やり直し機能”がついているテキストエディタを用意しておきましょう。 改造手順を順を追って見なおせるので、発見が非常に容易になります。 その場合、一連の改造が完全に終了するまで関連するファイルは閉じないようにしましょう。

あせらず落ち着いて

結局なんといっても最後の決め手となるのは、自身の記憶力です。 ここでどういう改造をした。もしかしたらここでミスしたのかもしれない。という記憶が、最大の手がかりとなるのです。 “ページが表示できません”というメッセージを恐れずに、確実に改造を成し遂げましょう。

初歩的なミス

“ページが表示できません”“InternalServerError”など実行不可能となるエラーの実に9割以上が、これら初歩的なミスが原因です。 単純だけに見つけにくいので、順を追って一つ一つ探していきましょう。

$マークとセミコロン(;)

初歩的なのミスのうち、最も多いのが「変数の$忘れ」と「行末の;忘れ」です。 慣れてくると書くのが癖になってくるので次第と減りますが、いまだ私のミスの4割近くはこれらによるエラーとなっています。 もう一度確かめておきます。“変数の頭には必ず$を”、“命令の末尾には必ず“;”を”です。 まずこれがあるか、今一度改造した点を見直しましょう。

括弧()[]{}、クォーテーション""''、カンマ記号,

次に多いのがこれ。 改造してるうちに間違って消したり、場所を間違えたり。意外な落とし穴としては、全角記号になっている場合もあります。種類の間違いにも注意。 それぞれの始端と終端をしっかりと見極めて、間違いが無いか確かめましょう。 要素を追加したときに、間違って""の外に書き加えてしまう、というのも良くあるミスです。

全角文字の取り扱い

全角文字を書きこめるのは

  • ダブルクォーテーション""の間。
  • # の後ろから行末までのコメント領域。
  • print << ------END---- 〜 ------END----でくくられた、html領域

だけとなっています。文字列を表示したり代入する場合は、全角文字に限らずダブルクォーテーション""でくくる必要があるので注意。 それだけでエラー扱いとなってしまいます。

-----END-----前のタブ空白

よく掲示板等に載せられている改造方法の場合、HTML表記したときにタブ空白が消えている場合があります。 EBSにおいてデータ表記の始点と終点を示す文字列は、(タブ空白) ------END------に統一されていますので、それに従いましょう。 よく解らなければ、とりあえず全ての------END------の前にタブ空白を入れておけば間違いは無いです。 逆に始点のタブ空白を除いてやることでも解決しますが。

その他

ボタンを押しても実行されないんだけど……

例えば「総帥就任」のボタンのvalueをただ「皇帝就任」等に変えただけなら、エラーになってしまいます。これは、押したボタンの名前をそのままボタンの判別条件として使用しているからです。 この場合、Sub3を開いて「総帥就任」を検索し、 /^総帥就任$/ のところを /^皇帝就任$/ と書き換えてやる必要があります。これ以外にも、ほとんどの「特殊」内のコマンドや「改造」、「亡命」や「内乱」などもボタンのvalueを条件としていますので注意が必要です。

文字化けする文字

シフトJISコードで記述した日本語をUNIX系のサーバで表示すると、一部の文字が文字化けしてしまいます。「表示」が「侮ヲ」に化けたりするパターンです。 EUCコードで記述してやれば問題ないのですがそれも面倒なので、手っ取り早く解決する方法として文字化けする文字のすぐ後ろに「表\示」のように、バックスラッシュ(\)を加えてやるのが一般的です。 私が確認した文字化けする文字は、「表」「十」「能」「備」「暴」「曾」「禄」「ソ」です。 特に「ソ」は“〜〜ソード”などよく使いますので、武器名を考えるときには注意しましょう。

未稿...