我有以下
use Config::IniFiles;
my $cfg = new Config::IniFiles( -file => "/path/configfile.ini" );
print "The value is " . $cfg->val( 'Section', 'Parameter' ) . "."
if $cfg->val( 'Section', 'Parameter' );
虽然以上几乎都有意义,但我并不确定-file
表示的是什么
my $cfg = new Config::IniFiles( -file => "/path/configfile.ini" );
上述说法功能中的$file
参数是否设置为/path/configfile.ini
?或者是别的什么
答案 0 :(得分:2)
在此上下文中,-file
是一个普通字符串,即表达式可以写为
my $cfg = Config::IniFiles->new("-file" => "/path/configfile.ini");
=>
运算符会使其左侧的单词被解释为字符串,因此您无需引用它。
答案 1 :(得分:0)
我建议你使用现代的oop风格:
my $cfg = Config::IniFiles->new( -file => "/path/configfile.ini" );
请在CPAN中查看此模块的来源:Config::IniFiles
After -file => “/path/configfile.ini”,它保存到参数$self->{cf} = $v
,然后保存到ReadConfig。
答案 2 :(得分:-1)
来自Config::IniFiles
documentation:
-file filename
指定要从中加载参数的文件。这个'文件'实际上可能 可以是以下任何一项:
文件的路径名
$cfg = Config::IniFiles->new( -file => "/path/to/config_file.ini" );
一个简单的文件句柄
$cfg = Config::IniFiles->new( -file => STDIN );
文件句柄
open( CONFIG, "/path/to/config_file.ini" ); $cfg = Config::IniFiles->new( -file => *CONFIG );
对glob
的引用open( CONFIG, "/path/to/config_file.ini" ); $cfg = Config::IniFiles->new( -file => \*CONFIG );
IO::File
对象$io = IO::File->new( "/path/to/config_file.ini" ); $cfg = Config::IniFiles->new( -file => $io );
或
open my $fh, '<', "/path/to/config_file.ini" or die $!; $cfg = Config::IniFiles->new( -file => $fh );
- 醇>
对标量的引用(需要较新版本的
IO::Scalar
)$ini_file_contents = <<EOT [section name] Parameter=A value Setting=Another value EOT $cfg = Config::IniFiles->new( -file => \$ini_file_contents );