昔の掲示板を設置するMojolicousからCGIを呼ぶ他者のPerlを書き替える他者のPerlを書き替える~2~全ページに告知WindowsとFedoraの両方でPerlスクリプトを共用する方法2012-11-14背景WindowsXPで遊びに作ったPerlスクリプトが思いのほか上手い事動作するので自宅サーバで稼働しているFedoraのApacheでCGIスクリプトとして使いたい。WindowsXPのコマンドプロンプトで動作するところまで作ったら、無修正でFedoraへFTPでもってコピーしたあとは、最後の動作確認をFedoraで行う様にしたいので、色々と工夫しました。ファイル名CGIに合わせて末尾4文字を.cgiにします。postlist.cgiという風に実行できるのでファイル名に制限がありません。スクリプトの文字コードスクリプトの文字コードをUTF-8にします。今時のPerlは変数名に漢字を使えるほどUTF-8が進んでいます。内部処理がUTF-8なのでスクリプトの文字コードをUTF-8にしておくと何かと都合がいいですよ。ルモーリンあと、UTF-8はBOMBの有る無しがありますけれど、BOMB無しがトラブル少ないです。エディタは個人的趣味でGVIM(VIMのWindowx版)を使っています。エディタでの文字コードやBOMBの設定を下記のようにします。fenc=utf-8CGIの文字コードをUTF-8になぜこうしたか忘れた(汗)。Root(自分のサイトのトップレベル)よりも上に作業ディレクトリを置きます。作業ディレクトリを扱う場合は変数を見るようにします。'/home/??????????/??????????/postlist/';環境を判断(WindowsかそれともFedoraか)環境変数にOSがあればWindowsですが念のためOSの値に「Windows」が含まれていればWindowsとします。/windows/i){Windowsの場合はパラメタを読むFedoraの場合はCGIなのでパラメタuseridを読むコードがこんな感じ。$query->param('userid");Windowsの場合はCGIじゃないのでパラメタを利用します。$ARGV[0];Windowsの場合はCP932で出力コマンドプロンプトはCP932(シフトJIS+α)なので画面に表示する文字コードをCP932に切り替えます。Fedoraの場合はUTF-8に切り替えます。mojolicious。