改变Perl的FindBin的行为

时间:2011-07-12 19:49:22

标签: perl module

我有一组使用FindBin模块的Perl脚本。脚本使用了一些数据文件,并期望在$FindBin::Bin/../share/somedir/中找到它们。我正在自定义安装,因此现在存在的文件是/some/other/share/dir/。有没有办法用类似环境变量的东西来定制FindBin的行为?

1 个答案:

答案 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;

这将允许您在一个位置控制所有配置路径。但是你需要改变存在的代码。