2012-08-09 49 views
1

我有以下- 在函数参数的perl

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 PARAM在函数中设置为/path/configfile.ini?抑或是别的东西

回答

2

在该上下文中是-file一个普通的字符串,即表达式可以写成

my $cfg = Config::IniFiles->new("-file" => "/path/configfile.ini"); 

=>操作导致在其左侧被解释为一个字符串的话,所以你不必引用它。

+0

哦,所以它没有什么特别的。感谢那 – 2012-08-09 10:23:21

0

我用现代风格的OOP你的建议:

my $cfg = Config::IniFiles->new(-file => "/path/configfile.ini"); 

请检查该模块在CPAN来源:Config::IniFiles

后-file =>“/path/configfile.ini “,它保存到参数$self->{cf} = $v,然后ReadConfig。

+0

我正在使用现代版本,我刚刚复制并粘贴了示例。感谢那 – 2012-08-09 10:22:35

-1

Config::IniFiles documentation

-file文件名

指定该文件以从加载的参数。该 '文件' 实际上可能 是下列任何东西:

  1. 文件

    $cfg = Config::IniFiles->new(-file => "/path/to/config_file.ini"); 
    
  2. 一个简单的文件句柄的路径名

    $cfg = Config::IniFiles->new(-file => STDIN); 
    
  3. 文件句柄glob

    open(CONFIG, "/path/to/config_file.ini"); 
    $cfg = Config::IniFiles->new(-file => *CONFIG); 
    
  4. 到水珠

    open(CONFIG, "/path/to/config_file.ini"); 
    $cfg = Config::IniFiles->new(-file => \*CONFIG); 
    
  5. 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); 
    
  6. 的引用标量(需要的IO::Scalar较新版本)

    $ini_file_contents = <<EOT 
    [section name] 
    Parameter=A value 
    Setting=Another value 
    EOT 
    
    $cfg = Config::IniFiles->new(-file => \$ini_file_contents);