Perl入門ゼミ

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

複数のコントローラーで共通に必要な値を渡す / Mojolicious

グローバルに値を設定するのであればdefaultsメソッドを使うことができます。けれども、ときには複数のコントローラーだけで、値を利用したいという場合があると思います。

そのような場合は次のようなテクニックを使います。

my $r = $app->routes->to(val => $val);

# 後は同じ
$r->get('/foo');
$r->get('/bar');

ルーターを取得するときにtoを使うところがポイントです。toメソッドは、通常はコントローラーとアクションの組み合わせを書くのに利用するのですが、実は、コントローラーのデフォルト値を設定することもできます。

このようにすればコントローラー側で、設定した値を利用することができます。

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