私は使用Moops
していますが、次のようなものが機能することを望みます:
use Moops;
class A {
fun f {
print "yay,f!\n";
}
}
class B extends A {
fun g {
f();
}
}
B->g(); # should print 'yay, f!'
代わりに、次の結果が得られます。
Undefined subroutine &B::f called at static-functions-lexical-scope.pl line 11.
Exporter
inから継承し、次のようなA
ステートメントuse
を使用することで、これを「修正」できます。B
class A extends Exporter {
our @EXPORT = qw(f);
fun f {
print "yay,f!\n";
}
}
class B extends A {
use A;
fun g {
f();
}
}
A
これは少し扱いにくいように見えますが、 が別のファイルで定義されている場合はさらに悪化します。次に、次のように外に2番目を追加する必要がありますuse A
(require
しません) :B
use A;
class B extends A {
use A;
fun g {
f();
}
}
(エクスポートされた) レキシカル インクルージョン関数をよりエレガントに動作させる方法はありますか?