我工作的一个perl
脚本(myscript.pl
),我想加载各种模块的一些环境变量,顺序如下:的Perl:设置默认情况下,局部和整体的用户设置
- 在默认设置
defaultSettings.pm
在同一目录myscript.pl
- 在
userSettings.pm
别的地方(可选),用户设置,用户可以在当前工作目录中选择 - (可选)在本地设置
localSettings.pm
我已经解决了我的第一个和最后一个项目符号,但没有成功解决第二个问题。
myscript.pl
#!/usr/bin/perl
use strict;
use warnings;
use FindBin;
use lib $FindBin::Bin;
# defaultSettings always present in same directory as myscript.pl
use defaultSettings;
# localSettings sometimes present (in current working directory)
eval
{
require localSettings;
localSettings->import();
};
print "Some variable is: ",$someVariable;
exit
defaultSettings.pm
package defaultSettings;
use strict;
use warnings;
use Exporter;
use vars qw($VERSION @ISA @EXPORT);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT = qw($someVariable
);
our $someVariable="default settings";
1;
localSettings.pm
package localSettings;
use strict;
use warnings;
use Exporter;
use vars qw($VERSION @ISA @EXPORT);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT = qw($someVariable
);
our $someVariable="local settings";
1;
我知道我可以在myscript.pl
使用
use lib "/home/foo/bar/";
use userSettings;
,但我想,以避免用户编辑myscript.pl
- 主要希望/目标是让用户编辑比myscript.pl
其他文件。
我持开放的态度完成:)
如何使它成为命令行选项? – Scavokovich 2013-03-18 02:43:21