職場では、社内向けの簡易なWebシステムを作ったりしています。ちょっとしたアンケートをとったり、ちょっとした掲示板を作ったり。そして今回作ったのは、社内向けの研修予約システム。三日間合計12コマある研修、各クラスは40人定員で、登録数が定員に達した時点で受け付けを終了。ただ期間が問題で、一週間で作って欲しい。ええーっ、ちょっと待って、そりゃいくらなんでも無理ですよと思ったので、とりあえず受け付けと受け付けた内容を修正する機能だけを作りました。最終的には、フォームもCGIから登録できるようにまでする予定。というか、こういう汎用性を持たせようとするから一週間じゃできないわけだ。
開発環境なんていうと大げさだけれども、いや、本当にささやかなものです。本来私は事務職として雇われているので、サーバを割り当てられているわけでもなく、自由に使えるのはWindowsノートPC一台。これにActivePerl入れて、AN HTTPも入れて、こうした環境で作って、その後サーバ代わりに使っているMac Book Proに持っていくというパターンです。
で、このWindows環境では問題なく動くようになったのです。受け付けもできて、ちゃんと定員に達したら締め切って、そして管理者画面からは登録内容の修正や有効無効の切り替えもできるようになって、やれやれ、後はMacintoshに置くだけだと思った。ところが話はこんなに簡単ではなかったのでした。
問題が発生したのは、どうやらファイルの有無をチェックする箇所でのようでした。研修内容に関する設定ファイルのチェックでまず問題が出て、一体なぜなのか、チェックしているパスを出力させてみて、とりあえずはなっとく。なぜか、途中にスペースが混入しているのです。ターゲットとなるディレクトリ名にスラッシュ区切りでIDを接続してディレクトリの有無をチェックするのですが、その連結する箇所にもれなくスペースが入っていて、なので設定を扱っているモジュールを開いて、場当たり的に前後のスペースを削除するように変更。これでようやく動くかと思ったら、今度はログの追加で問題ありです。ログは追加されるのです。一件だけ。けれど二件目が無理。いや、正確にいうと、毎回ログファイルが存在しないと誤判断されるために、ファイルを新規作成、投稿されたものを一件目とするデータが作られるといった問題が出ています。
またスペースが混入しているとかなのでしょう。けれど、なんでこんなことになるのかがわかりません。Windows上では動いていたし、設定ファイルをはじめとするもろもろはUTF8のLFで作成しているしで、問題はなさそうなのに、なぜか動作に不都合がある。参りながら、きっと環境変数の違いあたりが悪いんだと、まあ上の内容見るかぎり全然関係ないんですが、ぶつくさ文句いってます。