@nqounetです。
Mojolicious::Liteのサンプルシリーズ第1回は大変でした。
ファイル名がa
から始まっていて目に止まったので書き始めたのですが、いきなりハードな解説になってしまったので、順序がおかしいですが第2回はハローワールドです。
サンプルコード全体
Mojoliciousのバージョンは5.75で確認しています。
ファイル名はなんでも良いですが、ひとまずmyapp.pl
と考えてください。
|
|
解説
Line 1 - 2
|
|
いつものアレです。
use strict;
などが無いので心配だと思いますが、大丈夫です。
慣れればuse Mojolicious::Lite;
の背後に存在を感じるようになります。
Line 4 - 6
|
|
Mojolicious::Lite
では、URLごとに実行する処理を定義できるようになっています。
morbo myapp.pl
として起動した場合、http://localhost:3000
にアクセスすると、'/'
で定義された処理が実行されます。
この部分がまさにその定義です。
get '/' => sub { ... };
がどういう仕組みになっているかはわかりにくいと思いますが、(多少なりとも)見慣れた形に変えると以下のようになります。
|
|
つまり、get
という関数に、二つの引数(文字列とコードリファレンス)を渡しています。
最初の引数に定義されるURL(パス)を、二つ目の引数にそのURLにアクセスされた時に実行する処理を渡します。
コードリファレンスの中身は普通の関数と同じように書くことができます。
最初の引数として、Mojolicious::Controller
のオブジェクト(インスタンス)が渡されます。このインスタンスのことをコントローラー
と表現します。
コントローラーは沢山のメソッドを持っていますが、代表的なメソッドの1つがrender
です。
この例では一度しか使用しないので直接shift
から使用していますが、通常は一旦変数に代入して利用します。多くの場合は$self
という変数に入れることが多いですが、最近ではコントローラーであることを明示的にするため$c
という変数を使う事も多いです。
|
|
render
に渡している引数も、見慣れた感じで書き直すとrender('text', 'ハローワールド!')
となります。
render
の使い方の1つとして、一つ目の引数にはレンダリングのタイプであるtext
を渡すと、二つ目の引数の中身を出力する、という機能になります。
このようなことから、画面上には「ハローワールド!」と表示されるようになります。
Line 8
|
|
Mojolicious::Lite
を使う場合は、コードの最後にこの命令文を書かなければいけません。
コレより後に書けるのは、テンプレートかドキュメントだけです。
当面は「お約束」として覚えておけばよいでしょう。
多機能だけど必要なところだけ使えばOK
Mojolicious
を使うと、とても簡単にURLに対応する処理を書くことができます。
皆さんも美味しいところだけをうまく使ってサクッとウェブアプリを作ってみましょう。
2月28日(土)にPerl入学式の第6回としてウェブアプリを作成します。
大阪の講師は私が担当する予定です。
あなたの知らないPerlを一部お見せしますので、是非ご参加ください。
- Perl入学式 | Perl Entrance
- Perl入学式 in大阪 第6回 Webアプリ編 on Zusaar ← お申し込みはこちらから。参加費は無料です。