質問: cgiとplとpm 掲示板ソースをダウンロードするとplやpmという拡張子のものがありました。中身はperlでした。 拡張子の使い分けを教えてください。 適当に4つのルールを書いてみましたので、間違っていたり、追加するルールがありましたから教えてください。 1 ブラウザがそれ自身にアクセスし、ブラウザのアドレスバーに表示させるならcgiにするべき。 2 perlのpackageの機能を使うなら、パッケージファイルはplかpmでなくてはならない。 3 perlのrequireの機能を使うなら、その外部ファイルはplでなくてはいけない。 4 perlのuseの機能を使うなら、その外部ファイルはpmでなくてはならない。
回答: 基本的に拡張子は、あっても無くてもなんでもokです。ただ、モジュールには.pmをつけなければなりません。 また、webサーバによってcgiとして使える拡張子に制限がある場合があります。 1.について 言語として、特に拡張子を.cgiにしなければならないというのはありません。.plでも.doでも.hoge でも基本的には大丈夫ですが、大抵運用するwebサーバによって使える拡張子が制限されています。.cgiしかダメなサーバとか。 2.について そのような制限はありません。拡張子は何でもokです。 ただ、前述の通りwebサーバによって拡張子の制限がかかっている場合はcgiとしては実行できません。 3.について そのような制限はありません。拡張子は何でもokです。 4.について その通りです。use関数の対象になる外部ファイルは.pmでなければなりません。