如何在不修改任何其他内容的情况下更新ini文件中参数的值?
目前我正在使用如下所示的setVal(),但这会在更新其他参数值时删除参数。
sub setVal
{
my $section = shift;
my $parameter = shift;
my $value = shift;
my $ini_path = "C:\\MyFolder\\Ini.ini";
my $inicfg = Config::IniFiles->new( -file => $ini_path );
$inicfg -> setval($section,$parameter,$value);
$inicfg -> WriteConfig($ini_path);
}
答案 0 :(得分:1)
这似乎与我期望的一样有效。
$ cat my.ini
[section]
name=dave
foo=bar
[another section]
stuff=random
$ cat changeini
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
use Config::IniFiles;
my $cfg = Config::IniFiles->new( -file => 'my.ini' );
say $cfg->val('section', 'foo');
$cfg->setval('section', 'foo', 'baz');
say $cfg->val('section', 'foo');
$cfg->WriteConfig('my.ini');
$ ./changeini
bar
baz
$ cat my.ini
[section]
name=dave
foo=baz
[another section]
stuff=random
如果您得到不同的结果,请告诉我们您的做法有何不同。