CGIが動かない

外部から送られてきたPerlCGIをサーバへセット。ウェブブラウザから動かしてみるとInternal Server Errorだと。サーバ上でシェルから動作させると、

# ./hoge.cgi
: bad interpreter: No such file or directory

インタプリタがないだと? 当該スクリプトのマジックナンバはこんな。

#!/usr/bin/perl

ちゃんとあるよ。

# ls -l /usr/bin/perl 
-rwxr-xr-x    2 root     root        15468 Oct 16  2003 /usr/bin/perl

どうもファイルの改行コードが怪しそうなのでこうやって変換。

# vi hoge.cgi
(中略)
:set filefromat=unix
:wq

ちゃんと動作しました。文字コードって本当にややこしくてやだ。