在哪里存储全局数据库连接参数
问题描述:
在perl中是否存在数据库连接参数和其他全局设置的约定?类似于.NET的.config文件?在哪里存储全局数据库连接参数
背景:我已经继承了一个大型的基于perl的应用程序,它有一堆cgi脚本和几个后台服务,所有这些服务都具有硬编码的数据库主机名,用户名和密码。我希望找到一个安全的地方来存储这些地方,并且如果可能的话,还要坚持perl惯例。我对perl没有太多的经验,而且谷歌似乎并没有把我引向这个约定。
答
这是我到目前为止有:
创建一个名为config.pl
。将其放置在所有脚本均可访问的位置,从而降低所有脚本读取它所需的最低限度的权限。
让config.pl哈希的内容:
dbserver => 'localhost',
db => 'mydatabase',
user => 'username',
password => 'mysecretpassword',
然后在每个脚本:
use strict;
# The old way....
#my $dbh = DBI->connect("DBI:mysql:database=mydatabase;host=localhost", "username", "mysecretpassword");
# The new way
my %config = do '/path/to/config.pl';
my $dbh = DBI->connect("DBI:mysql:database=".$config{db}.";host=".$config{dbserver}."", $config{user}, $config{password});
看看配置''::命名空间在CPAN例如Config :: Multi,Config :: Settings,Config :: IniFiles等http://search.cpan.org/search?query=Config%3A%3A&mode=module – jfs 2011-02-27 22:07:02