次のような基本クラスがあります。
package MyClass;
use vars qw/$ME list of vars/;
use Exporter;
@ISA = qw/Exporter/;
@EXPORT_OK = qw/ many variables & functions/;
%EXPORT_TAGS = (all => \@EXPORT_OK );
sub my_method {
}
sub other_methods etc {
}
--- more code---
をサブクラス化したいのですMyClass
が、メソッドは 1 つだけです。
package MySubclass;
use MyClass;
use vars qw/@ISA/;
@ISA = 'MyClass';
sub my_method {
--- new method
}
MySubclass
そして、これを元の と同じように呼び出したいと思いMyClass
ますが、 からすべての変数と関数にアクセスできますExporter
。ただしExporter
、元のクラスから変数を取得しMyClass
て正しくエクスポートするのに問題があります。Exporter
サブクラス内で再度実行する必要がありますか? それは冗長で不明確に思えます。
サンプルファイル:
#!/usr/bin/perl
use MySubclass qw/$ME/;
-- rest of code
$ME
しかし、変数をインポートしようとするとコンパイル エラーが発生します。助言がありますか?