2012-08-09 77 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);