私はperlプロジェクトでwokringしているので、動的にperlモジュールを使用する必要があります。私はCT.pmと呼ばれる以下のモジュールを持っています。動的にperlモジュールを使用する
sub new {
my $class = shift;
my ($debug, $debug_matches,%checkHash) = @_;
my $self = {};
$self->{DEBUG} = shift;
$self->{DEBUG_MATCHES} = shift;
$self->{CHECKRESULT_OK} = "COMPLIANT";
$self->{CHECKRESULT_ERROR} = "NONCOMPLIANT";
%{$self->{checkHash}} = %checkHash;
eval{
use $checkHash{"type"};
$check = $checkHash{"type"}->new($self->{DEBUG},$self->{DEBUG_MATCHES},%checkHash);
};
bless($self,$class);
return $self;
}
このコンストラクタは%checkHashというハッシュをパラメータとして取得します。このハッシュにはtypeというキーがあります。このキーが動的に使用するperlモジュールの名前にマップする値。 (私は文句を言わない仕事を知っていると私はまた、人々はevalが悪いと言うことを知っている):
私はそれを行うには、次の方法が出ている
eval{
use $checkHash{"type"};
$check = $checkHash{"type"}->new($self->{DEBUG},$self->{DEBUG_MATCHES},%checkHash);
};
しかし、アイデアは、動的に使用することです$ checkHash {"type"}という名前のperlモジュール。
誰かがこれを行う方法に関するアイディアを持っているなら、pls help :) thx! :D
これを行う方法が見つかりました - 8時間以内に解決策を投稿できません。 – Diemauerdk
これは前に説明しました:http://stackoverflow.com/questions/251694/how-can-i-check-if-i-have-a-perl-module-before-using-it http:// stackoverflow。 com/questions/1094125/perl-and-print-message-if-module-not-available http://stackoverflow.com/questions/1917261/how-can-i-dynamically -include-perl-modules http://stackoverflow.com/questions/2855207/how-do-i-load-a-module-at-runtime http://stackoverflow.com/questions/3470706/perl-dynamically-include http://stackoverflow.com/questions/3945583/how-can-i-conditionally-use http://stackoverflow.com/questions/6855970/use-of-eval – daxim