Windowsパソコンのメモ帳などで作成した文書は、Shift_jisコードでかつ改行コードが[CR][LF]なわけだが、このことを忘れてメモ帳で書いたCGIプログラムをサーバにアップして、「おかしい動かない!?」はよくあることである。がしかし、動く場合もあったりで頭の中が混乱していた。サーバに入って、当該ファイルの改行コードを[CR][LF]から[LF]に替えれば動くのは当たり前なのだが、改行コードが[CR][LF]の場合でも動くCGIと動かないCGIがあるのだ。あれれ????
で、よく見てみると動く方のCGIは先頭のperlコマンドの指定が、
#!/usr/bin/perl -w
となっているのに対して、動かない方のCGIは
#!/usr/bin/perl
である。
でいろいろググって調べると、そーゆーことだったのか!
本来サーバは改行コードは[LF]のみである。であるからして、
/usr/bin/perl -w[CR][LF] → perlの後ろにスペースがあるためperlコマンドとして認識される
ただ、-w[CR]というオプションがついている。だからperlは一応動く。→でもいいのか?
/usr/bin/perl -w[LF] → 正解
/usr/bin/perl[LF] → 正解
/usr/bin/perl[CR][LF] → perl[CR]というコマンドを探しに行ってエラーとなる
ということなのか!(もし間違っていたらスミマセン)