mel*_*aos 1 testing perl module
我有perl模块文件和测试脚本pl,我用它来运行一些功能,并在浏览了使用lib和此前的问题后... 我仍然不知道如何做到这一点.
基本上我有一个包含模块文件的生产目录,我有一个测试目录文件,其中包含相同的模块和测试脚本文件.每次我尝试运行脚本文件时,它都会自动调用目录中的模块.通过打印出来@INC,似乎生产目录就在那里托管.因此我试着通过使用删除它
no lib qw(prod_dir);
Run Code Online (Sandbox Code Playgroud)
当打印出@INC目录不再存在的节目时,不知何故,脚本仍在调用其他模块......
我知道这可能听起来真的很蠢,但希望有人可以帮我看看这里的光:)谢谢.
在模块required或used后,检查%INC它的来源.
例如:
use Data::Dumper;
print $INC{'Data/Dumper.pm'}."\n";
Run Code Online (Sandbox Code Playgroud)
请注意,"::"变为"/",并附加".pm".这可能会给你一个线索.
请记住,当前目录(".")通常是一个条目@INC.但第一步是找出加载模块的目录.
要记住的另一件事是@INC按顺序搜索目录. use lib前置到该列表(使其成为第一个搜索目录),因此您可能只需要添加适当的目录.