Perl Config :: Simple: добавление дополнительных управляющих символов (\\ n) в файл - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть программа, которая должна читать и записывать в файл конфигурации (свойств) из сценария Perl. Я использую Config :: Simple для операций чтения и записи.

Мой вопрос здесь, я могу читать и писать в файле свойств. Однако, когда я пытаюсь обновить одно из значений конфигурации в значении свойства, он добавляет управляющие символы (\ n), а также хочет удалить заголовок по умолчанию, созданный методом "cfg-write ()". Я пробовал искать форумы и упоминал API, а не информацию. Может ли кто-нибудь пролить свет?

Когда я пытаюсь вызвать функцию даты / времени, она не добавляет никаких дополнительных символов. Однако, когда я пытаюсь выполнить команду SVN, он добавляет дополнительный символ. Я попытался использовать команду печати на консоли, она отлично работает без управляющего символа

my $buildDate = strftime('%d/%m/%y %H:%M:%S',localtime);
my $rev = `svn info --show-item revision`;
my $cfg = Config::Simple->import_from('temp.properties', \my %Config);
$cfg->param("builddate", $buildDate);
$cfg->param("revision", $rev);
$cfg->write() or die $cfg->error();

Недвижимость-файл:

; Config::Simple 4.58
; Thu Apr 25 10:59:10 2019

version=Build Automation
revision=14794\\n
builddate=25/04/19 10:59:10

Ожидаемые результаты: 1) Необходимо удалить управляющий символ (\ n) в параметре конфигурации ревизии 2) cfg-write или cfg-autosave () записывает заголовок по умолчанию в файл, который я хотел бы удалить / игнорировать

Фактические результаты: 1) Добавлен дополнительный управляющий символ (\ n) 2) Заголовок по умолчанию добавлен в файл свойств

1 Ответ

1 голос
/ 25 апреля 2019

Благодаря @choroba. Отличные входные данные

Я пытался использовать Config :: Properties :: Commons

 my $cpc = Config::Properties::Commons->new();
     $cpc->load('temp.properties');
     # Access
     $cpc->set_property( builddate => 'Updated' );
     $cpc->save('temp.properties');

Code for **Config::Simple**

    my $rev = `svn info --show-item revision /home/sudhir/Work/Workspaces/Eclipse/trunk`;

        chomp($ver);
        my $cfg = Config::Simple->import_from('easycare.properties', \my %Config) or 
     die print "ERROR: Not able to open easycare.properties file";


    $cfg->param("builddate", $buildDate);
    $cfg->param("revision", $rev);
    $cfg->param("version", $ver);
    $cfg->write() or die $cfg->error();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...