プラグインのような形にしたいので、Perlのコードの中に、具体的なクラス名を書きたくないと思っています。
自パッケージの名前なら、
print __PACKAGE__;
クラスになっていれば、こんな事も出来る。
use Data::Dumper; my $obj = __PACKAGE__->new(); print Dumper($obj)
任意のオブジェクトのパッケージ名を知りたいなら。
print ref($obj);
eval 関数
引数を Perl のプログラムであるかのように解析し、実行する関数
例えば、
$obj = new Plugin;
この行から具体的なクラス名を取り除くと、
$newop = "new ";
$name = "Plugin";
$obj = eval $newop$name;
$name 変数に外部から得た文字列を代入してやれば、具体的なクラス名を書かないで実現できます。
eval [Perl講座 -Smart] - http://www.rfs.jp/sb/perl/05/eval.html
ありがとうございました。
ありがとうございました。