if( $hoge =~ /package_(.*?)\.pl/ ){ use $1;hoge::$1(); }

とか
if( $hoge =~ /package_(.*?)\.pl/ ){ require $1; hoge::$1(); }
とか
予測できないファイル名のモジュール読み込みと実行をしたいのですが、簡単な方法ありませんか?
リストを読み込んで、perlからperlを書き出す・・は無しでお願いします。
perl5.8

回答の条件
  • 1人5回まで
  • 登録:2007/02/24 06:10:03
  • 終了:2007/02/24 18:58:07

ベストアンサー

id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402007/02/24 11:01:34

ポイント80pt
eval "use $1;hoge::$1();";
eval "require $1; hoge::$1();";

本当に予想できないのなら容易にセキュリティーホールになりますけどね。

実行するべきかどうかのチェックは必要でしょう。

id:ironbsd

ありがとうございます。

2007/02/24 18:57:12

その他の回答(1件)

id:nev No.1

nev回答回数77ベストアンサー獲得回数42007/02/24 09:20:31

ポイント50pt

CORE::eval { "use $lib" };

if ($@) {

...

}

モジュール側には import() を用意しておけばよいでしょう。

id:ironbsd

すみません import() の使い方がわかりません。

2007/02/24 15:50:30
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402007/02/24 11:01:34ここでベストアンサー

ポイント80pt
eval "use $1;hoge::$1();";
eval "require $1; hoge::$1();";

本当に予想できないのなら容易にセキュリティーホールになりますけどね。

実行するべきかどうかのチェックは必要でしょう。

id:ironbsd

ありがとうございます。

2007/02/24 18:57:12

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません