IT Office Nishimiyahara

個人用スマホから商用プログラミングまでなんでもお任せ下さい

厳密なCGIは難しいのでフレームワークを覚えましょう

   

@nqounetです。

先日書いたPSGIとCGIの比較ですが、厳密には同じではありません。

CGIで書いたほうは、かなり簡素化しています。

簡素化せずに書くとどうなるのか、一部を試してみます。

request_method と path_info

改めてMojoliciousで書いた方を見てみましょう。

get/があると思いますが、コレに相当することをCGIで書いてみましょう。

%ENVは環境変数です。

CGIの場合は、ApacheなどのウェブサーバーがCGIを実行する時に環境変数をセットします。

それをPerlで取り出す時に%ENVを使います。

%ENVは特別な変数ですが、扱い方は普通のハッシュと同じです。

なので、一覧を見るときにはkeyseachなどが使えます。

CGIを勉強するにしても、約束事というか色々な決まり事を覚える必要があります。

どうせ覚えるなら、最新の情報を覚えておいたほうが良いのではないでしょうか。

残念ながら、Mojoliciousが動作するPerlのバージョンはv5.10以降なので、まだまだ多くのレンタルサーバーでは使えません。

でもご安心ください。

v5.8にも対応しているMojoliciousがあります。

コレで、レンタルサーバーでも動きますね。

strict と warnings

CGI側にある表記として、use strictuse warnginsがありますが、何故Mojoliciousの方には書いてないのか疑問に思った方。とても素晴らしいです。

実はMojolicious::Liteと書くとこれらを自動的に有効にしたことになります。

最近ではuse utf8も有効になるようになっています。

use strictは口が酸っぱくなるほど言っていることですが、それも最近の動向としては書かなくても自動的にuse strictの状態になろうとする方向になっています。

ところで、Perlの必要なバージョンを書くとそれ以前のPerlでは動作しないようになるのですが、(安定版で言うと)v5.12以降を指定すると自動的にuse strictの状態になります。

そして、ついでにsayというコマンドも使えるようになるので、簡単なサンプルを書くようなときには便利な記法だと思います。

検索ワードは perl -cgi

Perlは古くからある言語なので、インターネットと共に発展してきました。

検索してみると情報量は多いのですが古いものも多く、そのせいで最近の情報が手に入りにくいと思います。

ただ、CGIの情報を取り除くだけでも見た目は大分良くなりますので、検索ワードはperl -cgiが良いと思います。

googleであれば、過去1年分のみを検索したりもできます。

是非お試しください。

respo

respo link

ZenBackWidget

 - 何気なく感じた、思った事について , , ,