人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perl で、Java の Class.forName() のようなことをしたいのですが、どうやるのが定番なんでしょうか?
プラグインのような形にしたいので、Perlのコードの中に、具体的なクラス名を書きたくないと思っています。

●質問者: yoshifumi1975
●カテゴリ:コンピュータ ウェブ制作
✍キーワード: Class Java Perl クラス コード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

自パッケージの名前なら、

print __PACKAGE__;

クラスになっていれば、こんな事も出来る。

use Data::Dumper;
my $obj = __PACKAGE__->new();
print Dumper($obj)

任意のオブジェクトのパッケージ名を知りたいなら。

print ref($obj);

ref [Perl講座 -Smart]

◎質問者からの返答

ありがとうございました。


2 ● decoy2004
●35ポイント

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

◎質問者からの返答

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ