次のような基本クラスがあります。
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しかし、変数をインポートしようとするとコンパイル エラーが発生します。助言がありますか?