2013-02-12 2 views
0

Ниже приведен файл config.pm.Как читать и заменять данные конфигурации в Perl

$AHost = '10.226.33.233'; 
$APort = '33002'; 
$ADBUser = "enacct"; 
$ADBPassword = "enacct"; 

Im чтение этого файла в файл с помощью some.pl sysread и это извлечение всех данных в виде строки (и после модификации мы передаем всю строку в качестве параметра, чтобы писать. Он будет писать его обратно файл).

Предположим, я хочу заменить значение $ AHost на '10 .226.33.234 'и $ ADBUser как «pwd» ;. Как мы можем сделать это?

Я имею в виду, что мы должны заменить соответствующие измененные значения в полученной строке и, отправив эту обновленную строку обратно, мы можем правильно записать данные в файл.

Как обновить строку с помощью этого сценария?

Спасибо,

+0

Выглядит очень похоже на это: http://stackoverflow.com/questions/14806888/how-to-read-and-update-a-pm-file-line-by-line – squiguy

+0

Вам уже сказали, что это не способ сделать это. Взгляните на модули 'Config' на CPAN. – Borodin

ответ

0

1: Вы можете использовать Getopt :: Евклида для хранения конфигурационных значений по умолчанию в сценарии, и это позволит вам ОТТ перезаписать любой из них из commanline. Это также самодокументируется.

2: Использование YAML для хранения данных конфигурации, вы можете использовать YAML :: Крошечный прочитать это

Пример:

file.yaml (there should be an empty line at the end of the file!) 

    --- 
    AHost: blah 
    APort: bah 



    use YAML::Tiny; 

    # Create a YAML file 
    my $yaml = YAML::Tiny->new; 

    # Open the config 
    $yaml = YAML::Tiny->read('file.yml'); 

    # Reading properties 
    my $AHost = $yaml->[0]->{AHost};