我注意到 Eclipse EPIC 插件中 Perl 的执行不匹配。
规格:
Perl 版本: (v5.12.4) 为 MSWin32-x86-multi-thread 构建
Eclipse 版本: Indigo Service Release 2
史诗版本: 0.6.53
考虑下面的文件和源代码:(所有源文件都在同一目录中)
样本.pl
use package1;
require "package1.pm";
require "package2.pm";
sampleFunction();
require "packagetest.pm";
packagetest::callSampleFunction();
包1.pm
package package1;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw(
sampleFunction
);
sub sampleFunction {
print "from package1.pm \n";
}
包2.pm
package package1; # declare the same package 'package1'
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw(
sampleFunction
);
sub sampleFunction {
print "from package2.pm \n";
}
包测试.pm
package packagetest;
use package1;
sub callSampleFunction {
sampleFunction();
}
1;
当我在 Eclipse EPIC 中执行 sample.pl 文件时,我得到了两个不同的控制台输出。
调试模式输出:
from package2.pm
from package2.pm
运行模式输出:
Subroutine sampleFunction redefined at D:/My.Soft.Dev/Perl_XS/package2.pm line 11.
from package1.pm
from package2.pm
我有以下问题:
1)为什么我在这里得到两个不同的输出?这不是一个错误吗?
2) 显示的哪些输出是“有效输出”?
3)有人可以解释为什么特定输出有效吗?
我试图从我的 Perl 知识中得出原因。但我做不到。所以,我明白了,我必须更多地了解 Perl :))
更新:我创建了一个错误报告:https ://sourceforge.net/p/epic/bugs/669/
看起来 (1) 是 5.12.4 版本的 Perl 调试器中的一个错误