Perl Config::IniFiles — как мне создать ini-файл, если он не существует? Метод WriteConfig завершается с ошибкой

#file #perl #config #ini

#файл #perl — язык программирования #конфигурация #ini #perl #config

Вопрос:

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

 if (-f '/path/to/file.ini') { # if file exists
    # read file into object
    my $ini = Config::IniFiles->new(-file => '/path/to/file.ini',
         -nomultiline => 1, -fallback => 'parameters', -commentchar => ';'
    );
} else {
    # create first instance of ini file
    WriteConfig('/path/to/file.ini');
}
  

Очевидно, я не понимаю, как использовать Config::InFiles потому что он продолжает выходить из строя WriteConfig('/path/to/file.ini'); .

Могу ли я создать файл с помощью этого модуля, или я должен сделать это другим способом?

Ответ №1:

WriteConfig является объектным методом и будет вызываться как $ini->WriteConfig(...);

Это создает новый файл:

 use warnings;
use strict;
use Config::IniFiles;

my $ini = Config::IniFiles->new();

$ini->AddSection('section1');
$ini->newval('section1', 'param1', 123);
$ini->WriteConfig('./file.ini');
  

Файл file.ini теперь содержит:

 [section1]
param1=123