使用perl更新Ini文件

时间:2016-02-23 12:26:16

标签: 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 => $ini_path );

   $inicfg -> setval($section,$parameter,$value);
   $inicfg -> WriteConfig($ini_path);
}

1 个答案:

答案 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

如果您得到不同的结果,请告诉我们您的做法有何不同。