2013-06-10 2 views
1

Я написал Perl-скрипт, где я буду подключаться к базе данных, для которых я использую это заявлениеКак читать файл свойств из PERL скрипта

my $dbh = DBI->connect(
    "DBI:mysql:database=test;host=localhost;mysql_socket=/var/run/mysqld/mysqld.sock", 
    "root", "password", {'RaiseError' => 1}); 

Как я не хочу никакой информации быть жестко запрограммированным, я хочу использовать файл свойств, где я могу перечислить приведенные выше данные (например, базу данных, хост, mysql_socket) и прочитать подробности файла свойств из сценария. Как написать файл свойств и прочитать данные из скрипта perl?

+0

Как обычно, для обычных задач [Задача :: Kensho имеет рекомендации] (https://metacpan.org/module/Task::Kensho#Config-Modules:-Task::Kensho::Config) – Quentin

+0

Либо пополудни 'Config :: Properties' или' Config :: Simple' должны работать для вас. Ссылки: http://search.cpan.org/~salva/Config-Properties-1.75/lib/Config/Properties.pm http://search.cpan.org/~sherzodr/Config-Simple-4.59/Simple.pm –

+0

@ Рудра, дал вам альтернативный пример. –

ответ

1

Существует много модулей CPAN, которые помогут вам достичь этой задачи. Мне нравится Config::Simple, например:

#!/usr/bin/perl 
use strict; 
use warnings; 
use Config::Simple; 
... 
my $cfg = new Config::Simple('myapp.ini'); 
my $user = $cfg->param('database.user'); 
my $connection_str = $cfg->param('database.connection'); 
#... 

и файл myapp.ini:

[database] 
connection="DBI:mysql:database=test;host=localhost;mysql_socket=/var/run/mysqld/mysqld.sock" 
user=root 
;... 

Вы можете установить модуль из терминала/командной строки с помощью:

cpan install Config::Simple 

или

yum install perl-Config-Simple 
+0

Невозможно найти метод объекта «новый» через пакет «Config :: Simple» (возможно, вы забыли загрузить «Config :: Simple»?) ... Я получаю эту ошибку – Rudra

+0

@Vishu - So load Config :: Просто. http://perldoc.perl.org/perlintro.html#Using-Perl-modules – Quentin

+0

@Quentin: Я сделал это - используйте Config :: Simple; – Rudra

0

У меня возникли проблемы с использованием perl-Config-Simple и вместо этого решил использовать Config::Properties. Если вы испытываете то же самое, вы можете попробовать следующее.

Удостоверьтесь, что у вас установлен Config::Properties. Ниже приведены несколько примеров того, как установить из командной строки, в зависимости от операционной системы, которую вы используете, вы хотите использовать соответствующий выбор:

  1. cpan Config::Properties
  2. cpan install Config::Properties
  3. yum install perl-Config-Properties

код:

#!/usr/bin/perl 
use strict; 
use warnings; 
use Config::Properties; 

open my $cfh, '<', './foo.properties' or die "unable to open property file"; 
my $properties = Config::Properties->new(); 
$properties->load($cfh); 
my $dbName = $properties->getProperty('database.name'); 
my $dbUser = $properties->getProperty('database.user'); 

свойство файл:

database.name=somedb 
database.user=someuser 

Как только у вас есть значения в переменных, поместите их в строку соединения, и вам должно быть хорошо идти.