perl亲身试验ini---使用perl读写配置文件
以前保存配置信息,都是直接将信息保存到文本文件,每行一条。这样做会导致可读性降低。
- 如去年课程作业编写的一个“光线追迹”软件,需要读取的数据完全用空格和换行分隔后保存于文本文件,现在想要理解各个数据的含义就只能查看源代码了,幸好当时注释写的非常详细。
- 又如今年的一个“膜厚计算”软件。因为需要跨程序调用各个信息(cli<–>LABVIEW<–>dll),直接传递参数太复杂,因此将很多的设置项与共享数据放到了文件中。可读性太差了。
现在正好需要使用perl读写一些配置信息,就将读写config文件的方法汇总一下。
调用Config::Tiny
这个是最简单的方法
详细说明可以参照“<perl安装路径>/html/lib/Config/Tiny.html”
然后就可以通过下面的代码读写:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
use Config::Tiny;
my $Config = Config::Tiny->new;
$Config = Config::Tiny->read( 'file.conf' );
my $rootproperty = $Config->{_}->{rootproperty};
my $one = $Config->{section}->{one};
my $Foo = $Config->{section}->{Foo};
$Config->{newsection} = { this => 'that' };
$Config->{section}->{Foo} = 'Not Bar!';
delete $Config->{_};
$Config->write( 'file.conf' );
|
file.conf文件如下:
1
2
3
4
5
6
|
rootproperty=blah
[section]
one=twp
three= four
Foo =Bar
empty=
|
调用Configfile::Ini
示例如下:
1
2
3
4
5
6
7
8
|
use Configfile::Ini;
my $settingsfile = 'test.ini';
my $settings = new Configfile::Ini($Settingsfile);
my %allsettings = $settings->get_all_settings;
my %entry = $settings->get_entry('myentry');
my $value = $settings->get_entry_setting('myentry','thissetting');
|
详细说明可以参考http://opensource.avajadi.org/configfile-ini/Ini.html
调用Config::IniFiles
示例如下:
1
2
3
4
5
6
|
use strict;
use warnings;
use Config::IniFiles;
my $cfg = new Config::IniFiles( -file => "./config.ini" );
print "The value is " . $cfg->val( 'Section', 'Parameter' ) . "." if $cfg->val( 'Section', 'Parameter' );
|
详细说明可以参考http://bbs.chinaunix.net/thread-1071426-1-1.html中的4楼回复。
调用Win32::AdminMisc
示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
use strict;
use Win32::AdminMisc;
use Cwd;
my $dir = getcwd;
my $file = $dir . $ARGV[0];
foreach my $section (Win32::AdminMisc::ReadINI($file, "", ""))
{
foreach my $key (Win32::AdminMisc::ReadINI($file, $section, ""))
{
my $value = Win32::AdminMisc::ReadINI($file, $section, $key);
print "($key, $value)", "n";
}
}
|
详细说明可以参考http://blogold.chinaunix.net/u/29291/showart_344126.html中的第三种方法。
调用IniParser
示例如下:
1
2
3
|
use IniParser;
my $ini = IniParser->new("test.ini");
my $inputdir = $ini->expectEntry("Directories","Input");
|
详细说明可以参考http://www.lwolf.cn/BLOG/article/program/perl-ini.html。
自己写
示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#!/usr/bin/perl -w
open CONFIG,"config.ini" || die "open config $!n";
$session=$ARGV[0];
$key=$ARGV[1];
$flag=0;
while($string=){
chomp $string;
if($flag == 0 &&$string !~ /^[$session]/ ){
next;}
$flag = 1;
if ( ($string !~ /^#/)&&(($k,$v) = $string =~ m/(w+)=(.*)/) ){
if($k eq $key){
print "I find $k ............... value $vn";
last;}}
else{
next;}
if( $string =~ /^[/){
last;}
}
|
config.ini文件如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[perl1]
# one=1
two=2
three=3
# four=four=4
five=asd ad 5
asdasdasd
[per2]
# one=1
two=2
three=3
# four=four=4
five=I am lipeng
asdasdasd
|
带参数执行:
1
2
|
C:UsersleniyDesktop1>perl.pl perl1 two
I find two ............... value 2
|
详细说明可以参考http://hi.baidu.com/litaosmile/blog/item/72938859764aaf2d2934f04d.html。
perl亲身试验ini---使用perl读写配置文件相关推荐
- 解答:一个perl操作config.ini的出现的 cannot find file or dirctionary,可明明文件存在
需求:perl 脚本动态的获取配置文件,将有exception的异常大文件in.log 抓取exception异常出来写入一个小文件out.log中 问题:perl操作一个config.ini文件读取 ...
- 如何在MFC中读写配置文件
如何在MFC中读写配置文件 在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI ...
- python-ConfigParser模块【读写配置文件】
对python 读写配置文件的具体方案的介绍 1,函数介绍 import configParser 如果Configparser无效将导入的configParser 的C小写 1.1.读取配置文件 - ...
- python:实例化configparser模块读写配置文件
之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...
- Python 读写配置文件模块: configobj 和 configParser
参考:http://www.voidspace.org.uk/python/configobj.html Python模块之ConfigParser - 读写配置文件:http://www.cnblo ...
- python自动化读取和写入文件_基于Python的接口自动化实战-基础篇之读写配置文件...
引言 在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值.为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变 ...
- 在VB中INI文件的读写、删除(对中文支持很好)
很多时候我们编一个程序不一定要用到注册表来保存设置(如果说一个程序没有设置就不算好程序了).INI是一个很好的选择.有人说,Savesetting是一个不错的选择,但是我了解到,不能永久的保存(起码在 ...
- python读conf配置文件_python读写配置文件操作示例
本文实例讲述了python读写配置文件操作.分享给大家供大家参考,具体如下: 在用编译型语言写程序的时候,很多时候用到配置文件,作为一个约定的规则,一般用 ini 文件作为配置文件,当然不是绝对的,也 ...
- .Net2.0 使用ConfigurationManager读写配置文件
.net1.1中如果需要灵活的操作和读写配置文件并不是十分方便,一般都会在项目中封装一个配置文件管理类来进行读写操作.而在.net2.0中使用ConfigurationManager 和WebConf ...
最新文章
- 花了一个星期,我终于把RPC框架整明白了!
- 如何安装Pycharm官方统计代码行插件
- Python函数及相关知识
- 实战-130W表增加字段耗时
- typedef 及其与struct的结合使用
- 信息系统项目管理07——项目成本管理
- Windows移动开发(一)——登堂入室
- 网吧电脑显示连不上服务器,Pubwin客户机连不上服务器怎么办?
- Maya批量随机替代插件BatchReplacerV1.0.2 下载及教程
- 利用cropper插件进行图片裁剪
- 传奇客户端wil文件说明
- python如何更改背景颜色_python背景颜色,python改背景色
- 如何将PDF转化成Word格式
- Azul开源Zing Jvm
- PyQt5 第七章 综合篇(一)
- 用四阶RungeKutta方程解二阶常微分方程,并计算船舶在规则波中的横摇角(附Matlab代码)
- 1号店详情页(共5页)
- 用Python写一个量化交易策略
- 自定义navigationBar字体大小颜色背景色
- MFC 加入文件时有坑stdafx.h