我在包含必须从 Perforce 存储库中获取的 Perl 模块时遇到问题。我通过使用 Perforce 读取它们的文本来包含模块P4 print
。
对于不熟悉 Perforce 的人来说,它是一个代码版本控制工具。我不能直接从该路径读取文件,就好像它是一个映射驱动器一样,所以我需要运行这个命令。
p4 print
相当于cat
除了路径是特殊的并且只有命令p4
可以从 Perforce 工作区访问文件。
BEGIN {
push @INC, (
sub {
open my $fh, "p4 print -q //sw/pvt/shashikanths/perl/mylib/ReadElf.pm |";
return $fh;
},
sub {
open my $fh1, "p4 print -q //sw/pvt/shashikanths/perl/mylib/SimpleLogger.pm |";
return $fh1;
},
);
}
BEGIN {
push @INC, sub {
open my $fh2, "p4 print -q //sw/pvt/shashikanths/perl/mylib/Table.pm |";
return $fh2;
}
}
use ReadElf;
use SimpleLogger;
use Table;
始终只ReadElf.pm
包含第一个文件。我尝试将所有三个文件连接到一个文件,并BEGIN
分别为每个文件使用一个块。它们都不起作用。
因此,当我尝试从 SimpleLogger 访问模块时,我得到未定义的子程序错误。