Perl Config::Simple:在文件中添加额外的控制字符 (\)



我有一个程序,它必须从perl脚本读取和写入配置(属性)文件。我正在使用配置::简单进行读取和写入操作。

我的问题是,我能够在属性文件中读写。 但是,当我尝试更新属性值中的一个配置值时,它会添加控制字符 (),并且还想删除由"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) 需要删除修订配置参数中的控制字符 () 2) cfg-write 或 cfg-autosave() 将默认标头写入文件,我想删除/忽略它

实际结果: 1) 添加了额外的控制字符() 2) 默认标头添加到属性文件中

感谢@choroba。出色的输入

我尝试使用Config::P roperties::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();

最新更新