使用 - 在perl中的函数参数中

时间:2012-08-09 09:44:31

标签: perl parameters

我有以下

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?或者是别的什么

3 个答案:

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

     

指定要从中加载参数的文件。这个'文件'实际上可能   可以是以下任何一项:

     
      
  1. 文件的路径名

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

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

    open( CONFIG, "/path/to/config_file.ini" );
    $cfg = Config::IniFiles->new( -file => *CONFIG );
    
  6.   
  7. 对glob

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

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