Ini文件使用perl更新
如何在不修改任何其他内容的情况下更新ini文件中参数的值?Ini文件使用perl更新,perl,ini,Perl,Ini,如何在不修改任何其他内容的情况下更新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 =&g
目前我正在使用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);
}
这似乎和我预期的一样有效
$ 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
如果您得到了不同的结果,请告诉我们您的不同之处。您能展示一下您使用的代码吗?如果不看代码,我们(通常)无法猜测问题出在哪里。我使用的方法与上面的代码片段中所示的类似,那么您看到了什么不同的行为?请准确点。