Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. Mojolicious

Mojolicious::Liteアプリでは、最後を「1;」で終わってはいけない。

Mojoliciousでは、自動的にファイルの変更を検地してくれるmorboと呼ばれるサーバーを起動して開発ができます。

morbo myapp.pl

でもひとつ気をつけてほしいことがあります。実は以下のアプリケーションは正しくうごきません。

use Mojolicious::Lite;

get '/' => sub { shift->render(text => 'aaa') };

app->start;

1;

Perlのソースコードとしては正しく見えます。でもmorboコマンドで実行すると以下のようにエラーになります。

"myapp.pl" is not a valid application.

実は最後の1;という行が問題です。実はapp->startでスクリプトが終わっている必要があります。__DATA__セクションがある場合は、app->startと__DATA__の間に空白以外をいれてはいけません。

以下のように修正すると正しく動きます。

use Mojolicious::Lite;

get '/' => sub { shift->render(text => 'aaa') };

app->start;

これはPSGIでアプリケーションを実行するときも同じことが言えるので気をつけましょう。

  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。