Chinaunix
标题:
Config::IniFiles读取配置文件的问题
[打印本页]
作者:
aboy11
时间:
2009-07-14 18:46
标题:
Config::IniFiles读取配置文件的问题
有一配置文件内容如下:
[target]
trg_tab_owner=escrow
trg_tab_name=escrow_trade
pk_column=id
[list_values]
ORDER_CURRENCY=USD
CLEARING_CURRENCY=USD
REFUND_CURRENCY=USD
REFUND_CLEARING_CURRENCY=USD
PAYMENT_TYPE=online_payment,offline_payment
TRADE_STATUS=underway,success,closed,frozen
FUND_STATUS=not_pay,wait_seller_check,pay_success
[....]
.......
我用
my $trg_tab_owner=$cfg->val("target","trg_tab_owner");
my $trg_tab_name=$cfg->val("target","trg_tab_name");
可以得到这两个变量的值,,但[list_values]部分的内容是不固定的,
我想获取[list_values]到下一个[]之间的内容,用Config::IniFiles有没有办法直接获取呢?
还是只能通过解析文件获取?
请大虾们指教!
作者:
flw
时间:
2009-07-14 19:34
keys
作者:
wxlfh
时间:
2009-07-14 20:57
@sect = $cfg->Sections;
就能得到全部的"[ ]"中的内容了。
作者:
aboy11
时间:
2009-07-15 10:03
原帖由
wxlfh
于 2009-7-14 20:57 发表
@sect = $cfg->Sections;
就能得到全部的"[ ]"中的内容了。
我是想获得
ORDER_CURRENCY=USD
CLEARING_CURRENCY=USD
REFUND_CURRENCY=USD
REFUND_CLEARING_CURRENCY=USD
PAYMENT_TYPE=online_payment,offline_payment
TRADE_STATUS=underway,success,closed,frozen
FUND_STATUS=not_pay,wait_seller_check,pay_success
这部分内容...
作者:
wxlfh
时间:
2009-07-15 15:00
@para = $icfg->Parameters($sec);
得到每个$sec中的等号左边的值。
$val = $cfg->val($sec, $para);
得到等号右边的值。
还有不明白的话,看文档
http://search.cpan.org/~shlomif/ ... /Config/IniFiles.pm
作者:
ulmer
时间:
2009-07-15 16:00
标题:
回复 #1 aboy11 的帖子
hi
in your case, you can directly process the section block "[list_values]" without module Config::IniFiles.
sample code:
my %params = ();
my $section = '[list_values]';
while(<>) {
chomp;
my $flag = /^$section/ ? defined : undef;
# process given section block
if (not defined $flag) {
$params{$1} = $2 if /^(.+)=(.+)$/;
}
}
# dump
foreach my $key (sort keys %params) {
print "$key = $params{$key}\n";
}
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2