Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. モジュール基礎

モジュール名を変数で指定してモジュールを読み込む

モジュール名を変数で指定して読み込むには、少し工夫が要ります。requreは、引数に文字列か裸のワードを受け取ります。requireは文字列を受け取ったときは、それをファイル名だと認識します。一方、裸のワードを受け取ったときは、それをモジュール名だと認識します。

# 引数が文字列の場合はファイル名だと認識される。
require "Carp.pm";

# 引数が裸のワードの場合はモジュール名だと認識される。
require Carp;

requireがこのような仕様になっていますので、引数がファイル名だと認識されます。そこで、モジュール名を変数で指定して読み込むには次のように書きます。

my $module = "Carp";
eval "require $module;";

evalに文字列を与えると、文字列の中の実行文を実行します。"require $module;"は、変数展開されて、require Carp; になります。これがevalによって、実行されてモジュールが読み込まれることになります。

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