我工作的一個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