где хранить глобальные параметры подключения к базе данных - PullRequest
3 голосов
/ 28 февраля 2011

Существует ли соглашение о хранении параметров подключения к базе данных и других глобальных настроек в perl? похожи на .NET файлы .config?

Справочная информация. Я унаследовал большое приложение на основе Perl, в котором есть несколько сценариев cgi и несколько фоновых служб, каждая из которых имеет жестко запрограммированные имена хостов, имена пользователей и пароли. Я хотел бы найти единственное, безопасное место для их хранения, а также придерживаться соглашений Perl, если это возможно. У меня немного опыта работы с Perl, и Google, похоже, не приводит меня к соглашению об этом.

1 Ответ

8 голосов
/ 28 февраля 2011

Это то, что я получил до сих пор:

Создайте файл с именем config.pl.Поместите его в место, доступное для всех сценариев, сократив разрешения до минимума, необходимого для чтения всеми сценариями.

Согласно это руководство по perlmonks :

Makeсодержимое 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});
...