Perl入門ゼミ

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

HTTPヘッダを取得する / Mojolicious

HTTPヘッダを取得するにはMojo::Headersクラスのheaderメソッドを使用します。

my $x_forwarded_host = $headers->header('X-Forwarded-Host');

またMojo::Headersクラスには一般的なヘッダを取得するためのショートカットメソッドがたくさん用意されています。

my $content_type = $headers->content_type;
my $accept_language = $headers->accept_language;

以下はMojolicious::Liteのサンプルです。Mojo::Message::RequestオブジェクトをMojolicious::Controllerオブジェクトのreqメソッドによって取得し、Mojo::HeadersオブジェクトをMojo::Message::Requestオブジェクトのheadersメソッドによって取得しています。

# Mojolicious::Lite
use Mojolicious::Lite;

get '/' => sub {
  my $self = shift;
  my $x_forwarded_host = $self->req->headers->header('X-Forwarded-Host');
  my $content_type = $self->req->headers->content_type;
  my $accept_language = $self->req->headers->accept_language;
};

以下はMojoliciousのサンプルです。

package MyApp::Diary;

use Mojo::Base 'Mojolicious::Controller';

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