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の書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「こっ、こしゃくな。
このPerオタクめ~!」

Twitter
フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

木本システム株式会社
ご紹介キャンペーン実施中です。契約金額の10%をご紹介料としてお支払い。

(例)30万円のシステム開発委託契約が、1年続いたら、36万円がもらえる!!!