2017-09-30 5 views
-1

変数から生成されたパッケージ名に対してメソッドを呼びたいと思っています。私は前にこれをやったと思うが、私はどのように忘れてしまったようだ。ここに私が達成しようとしているものの壊れたバージョンがあります。パッケージ名に変数を使用する場合の構文は?

my $var = 'Page'; 
my $p = My::Package::$var->new(); 
+0

で答えを使って、この作業を取得することができました。 – Borodin

+0

なぜですか?それの問題は何ですか? – StevieD

+0

重複した質問を見て、[*変数名として変数を使用するのはなぜなのか[*](https://perl.plover.com/varvarname.html)特にPart IIを読んでください。 – Borodin

答えて

-1

私はあなたが*本当に*これを行うにはしたくないPerl, dynamically include package

my $module_name = 'Some::Module'; 
(my $require_name = $module_name . ".pm") =~ s{::}{/}g; 
require $require_name; 
my $obj = $module_name->new(); 
+0

この回答は質問と一致しません!しかし、あなたはそれが他の質問と重複していると主張しているので、私はあなたの質問をするつもりです。 – ikegami

関連する問題