use Config::IniFiles; #加载模块
my $cfg = new Config::IniFiles( -file => "/path/configfile.ini" ); #读取配置文件
my $value = $cfg->val('Section', 'Parameter'); #读取参数
一个更加方便的读取方式:
my %ini
tie %ini, 'Config::IniFiles', ( -file => "/path/configfile.ini" );
#该方法把参数读进了二维哈希(引用的引用),即$ini{Section}{Parameter}
2654Perl 特殊变量
Perl 读取 .ini 风格配置文件之 Config::IniFiles
如果一个 Perl 脚本中有太多参数需要配置,使用命令行参数的方式就不太合适了。我们可以使用配置文件的方式来配置这些参数,刚好 Config::IniFiles 模块给我们提供了解析 .ini 风格配置文件的方法。重要的是其他语言,如 Python,也有 .ini 风格配置文件解析的包,所以用该方法,便于程序的通用性。
Config::IniFiles
先看一看 .ini 风格配置文件格式:
使用方法:
一个更加方便的读取方式:
详细用法请参考: http://search.cpan.org/~wadg/Config-IniFiles-2.38/IniFiles.pm
2653Perl 数组
另外还有特殊标识 $_,表示遍历数组。
实例:
执行以上程序,输出结果为:
2033Perl 目录操作
Perl 递归目录其实可以用更简单的 File::Find 函式达成。
I. 實例
II. 說明
File::Find 是一個應該能相容最近 Perl 版本的函式(我自己並沒找到 File::Find 最早於哪版引進,如果資料有誤也請幫忙修正 orz)。這個函式功能十分專一,也就只有遞迴功能。
以上的範例肯定看不出些什麼有用之處,但假如我們改一下例子 -- 只遞迴 MO 檔(一種已編譯翻譯檔的格式,先別在意):
這麼寫就代表著「除了目錄和不以 .mo 作為結尾的檔案」。
III. 結尾
使用 File::Find 能讓遞迴檔案和資料夾的方式更加簡單。若你的 Perl 有遞迴需求,建議不要自己花時間重造輪子,直接用這個函式能事半功倍。
2032Perl 子程序(函数)
my 和 local 的区别
内部 -> 外部:
外部 -> 内部:
(1)外部设置 my、local、缺省均队内有效,但是同名变量外部 my,在 block 内部 local 是不允许的。因为二者在 block 中调用的子程序中均有效,会冲突。
(2)如果在一个 block 中有一个 my 修饰的变量和外界的一个变量同名,而且又需要在这个 block 中使用外界变量时,两个办法:
(3)编写脚本时,注意作用域,防止外部影响内部。
2031Perl 数组
split 扩展说明
参数说明:
当采用LIMIT参数时,是指将数组分割成LIMIT个元素。而并非返回依分割符分割成的个数。举例:
输出结果: