我有一组使用FindBin模块的Perl脚本。脚本使用了一些数据文件,并期望在$FindBin::Bin/../share/somedir/
中找到它们。我正在自定义安装,因此现在存在的文件是/some/other/share/dir/
。有没有办法用类似环境变量的东西来定制FindBin的行为?
答案 0 :(得分:2)
我认为您无法使用FindBin
模块解决此问题,因为它旨在解决特定问题:找到原始perl脚本的目录。
您应该实现自己的模块来获取配置参数。这看起来像:
package MyConfig;
use strict; use warnings;
use FindBin;
sub get_data_folder {
return ($ENV{'DEV_ENVIROMENT'} ? ## create this variable in your development
$FindBin::Bin."/../share/somedir/" :
"/some/other/share/dir/"
);
}
1;
这将允许您在一个位置控制所有配置路径。但是你需要改变存在的代码。