level 12
再说一下Perl 自带的文件处理模块吧
File::Basename
这个恐怕是初学Perl 最早接触的一个模块,返回basename 和dirname
File::Find
这个提供find 函数,用户获取目录下所有的子文件(注意这其中也包含了子目录)
File::Stat
获取文件的状态,每个字段的值代表含义可以看下perldoc,CPAN 上有这个模块的封装,名字是File::stat
File::Copy
如其名,移动或者赋值文件,提供cp 和mv 两个酷似Linux 指令的接口
File::Path
主要用于目录操作,新建目录(效果类似于mkdir -p 指令),删除目录等
File::Spec
这个用于提供一些文件名的操作,例如catfile 连接path 的各个部分,或者返回各个平台的特殊目录,例如rootdir、devnull、tmpdir 等
FileHandle
提供文件的对象化操作,例如常用的close $fh 可以变成$fh->close
2014年08月02日 01点08分
4
level 12
一些自带的处理时间的模块
Time::Piece
记不清localtime 的字段,觉得乱七八糟?$date->year 的形式你不会记错
Time::Seconds
继承自Time::Piece,给你一个时间点,若干天后是什么日期,若小时前又是什么日期?内部已做好加减法的重载,一个简单的算式告诉你答案。这个模块时间计算是非常精确的。
Time::Local
给定年月日时分秒,返回1970/1 以来的总秒数。请看perldoc,否则你会栽在年份传参上。
Net::Time
从服务器得到时间
2014年08月02日 01点08分
5
level 12
再说一下Perl 自带的参数处理模块
参数的处理,长短开关形式都有一个规范,所以最好不要自己处理参数,弄不好写的就不在规范之内,这个各种语言都有自己的处理方法,C 的getopt/getopt_long,C++ Boost 的Options 库,shell 的getopts 函数和getopt 指令……
Perl 中的模块是
Getopt::Std
用于短开关的处理,指定开关是否跟参数等等,结果放在$opt_* 标量或者给定的散列引用中
Getopt::Long
这个功能要强大很多,建议使用。提供短、长开关的完善处理,可以指定长开关短化的名字,指定后跟参数的方式等等,结果放在给定的数组引用中。注意Getopt::Long::GetOptions 中,默认是不区分大小写的,如果区分的话需要向下面一样use 时指定:config no_ignore_case,这应该是一个多做之过。
use Getopt::Long qw (GetOptions :config no_ignore_case);
2014年08月02日 01点08分
6
level 1
好贴,受用了,这么好的贴吧,为什么关注的人这么少呢
2016年10月25日 02点10分
19
level 1
install_driver(Oracle) failed: Can't load 'C:/Perl/site/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:%1 不是有效的 Win32 应用程序。 at C:/Perl/lib/DynaLoader.pm line 194.
大神们 这是啥错啊??
2017年03月01日 07点03分
20
level 6
Term::ANSIColor - 输出带颜色的文字
1、单独设置颜色
使用示例
use Term::ANSIColor;
print color 'bold yellow'; #设定之后的打印内容为 粗体,黄色
print "注意";
print color 'reset'; #清除颜色
输出到color里的颜色属性列表
CLEAR清除, RESET重置, BOLD粗体, DARK黑暗, UNDERLINE下划线, UNDERSCORE下划线, BLINK闪烁, REVERSE反转, CONCEALED隐藏, BLACK黑色, RED红色, GREEN绿色, YELLOW黄色, BLUE蓝色, MAGENTA紫红色, CYAN青色, WHITE白色, ON_BLACK, ON_RED, ON_GREEN, ON_YELLOW, ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE
这些。颜色属性不区分大小。普通颜色是设置前景色, 而在前面添加了on_的颜色就是背景色了,例如on_blue就是把背景设成蓝色。
2、颜色前置简化
如果使用这种方法,可以直接把颜色属性放在要输出的问题前面,从而简化输出步骤。
例如:
print BOLD BLUE ON_WHITE “Text”, RESET, “/n”;
如果你打印完之后想清除掉字符串的格式,一定要记得在最后加上一个RESET的属性值。例如:
use Term::ANSIColor qw(:constants);
print BOLD, BLUE, “This text is in bold blue./n”, RESET;
3、完全简化
对于2)的方法,如果你不想在每条打印语句后面加上RESET的话,你可以直接把$Term::ANSIColor::AUTORESET的值设为true。这样每次打印完字符,只要你的属性值之间没有逗号,系统将自动帮你清除掉颜色属性。看一个完整的例子:
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print BOLD BLUE “This text is in bold blue./n”;
print “This text is normal./n”;
2022年01月14日 08点01分
25