2013-01-07 199 views
0

我想知道如何从perl中的INI文件中检索信息。我在perl.org文档 here发现了一些东西,但它没有被评论,并且需要一些解释。有没有更容易使用的模块来解析INI信息?从perl获取ini信息

[version] 
ver=1.0.3 

[ServerInfo] 
port=1234 
address="localhost" 
+1

问题是什么?你想要什么信息? – squiguy

+0

我想知道如何从ini中检索信息,然后在控制台上打印信息 –

回答

1

这是一个很好INI file reader in CPAN,而如果你想你可以sublclass。

% cpan install 'Config::INI::Reader' 

则...

% cat blah.pl 
#!/usr/bin/env perl -w 

use strict; 
use Config::INI::Reader; 

my $filename = "blah.ini"; 

my $ini = Config::INI::Reader->read_file($filename); 
my $server_info = $ini->{'ServerInfo'}; 

printf "Will connect to %s:%d\n" 
    , $server_info->{'address'} 
    , $server_info->{'port'} 
    ; 

运行:

% ./blah.pl 
Will connect to "localhost":1234 

你并不需要在您的INI文件中的"

+1

感谢当我第一次开始研究ini的时候我看到ini的例子ini它有“ –

+0

无论使用读取器的语言如何,您都不需要INI文件中的引号。 – Johnsyweb

3

尝试通过例如这样:

use strict; 
use warnings; 

use Config::IniFiles; 

my $ini = new Config::IniFiles(
    -file => '/tmp/config.ini', 
    -allowcontinue => 1 
); 

print $ini->val('version', 'ver'); 

perldoc Config::IniFiles

+1

感谢您的答案生病尝试 –

0

在研究如何在Perl中做某些事情时,您的第一步应始终是搜索CPAN以获得有用的模块。

在这种情况下,searching for "ini"为您提供了大量的选项可供选择。