【发布时间】:2019-07-19 01:14:12
【问题描述】:
我创建了两个测试模块,X.pm 和 X2.pm。 X.pm 模块有效。 X2.pm 模块没有,至少不像我期望的那样。
X.pm
package X {
use enum::fields qw(I_VAL);
use parent qw(Exporter);
our @EXPORT = qw(I_VAL);
}
X2.pm
package X2 {
our @EXPORT = qw(I2_VAL);
use enum::fields (@EXPORT);
use parent qw(Exporter);
}
测试程序是:
use X;
use X2;
printf("I_VAL = %d\n", I_VAL);
printf("I2_VAL = %d\n", I2_VAL);
输出是:
bash$ ./tmp/testit
I_VAL = 0
Undefined subroutine &X2::I2_VAL called at /home/bennett/tmp/testit line 15.
真正的项目有几十个enum::fields,X2.pm是我尝试保持枚举与导出同步。
我的问题是:
- 为什么
X2不起作用?之前是出口(进口)吗enum::fields跑了吗? - 我该怎么办?
【问题讨论】: