第一次接触Perl,还是2008年10月份的时候,当时因为项目重构,需要进行大量的文本操作,于是便拾起了以“文本操作为己任”的Perl语言。当然,带我入门的还是那本赫赫有名的The Llama Book, 即<Learning Perl> 第四版。
然而,由于主要是为了使用,所以只是快餐式的学习,并没有系统的去了解Perl,这几年来三三两两的也写了不少Perl脚本,但是对于Perl那些天书式的符号,还是颇有些头疼,经常,写到一半就得停下来去查一下某个奇怪的语法,或者奇特的符号,很是打断思路。社区对Perl有两种比较中肯的评价:一是Perl是Write-Only的编程语言;二是Perl学起来难,但一旦学会了,用起来就相当方便。 我想这两点其实都是基于一个事实,就是Perl里有太多奇怪的符号,而只有你对这些符号了若指掌了,你才能发挥Perl的最大效率 --- 所以,学习Perl就要像学习历史课本一样,靠的,就是背诵!
根据这两年的经验,整理了一下自己觉得用的比较多的一些符号,用法,以及函数,库之类的,这些都是很基本的,但是“背熟”了,对提高效率会很有帮助。
数据操作
-
$ - 声明与引用用一个scalar的变量
-
@ - 声明与引用一个list,但是当访问一个list的成员时,需使用$ListName[index]
-
% - 声明与引用一个hash表,但是当访问一个hash的成员时,需要使用$HashName{key}
特殊变量
-
$0 - 当前运行脚本的文件名
-
@ARGV - 当前运行脚本的命令行参数列表
-
$_ - 默认变量,如循环中的当前变量
-
@_ - 函数的输入参数列表
-
%ENV - 系统的环境变量
-
@INC - Perl的Include路径列表,我们可以往该列表中添加我们自己的目录来方便引用自定义的库
-
$! - 当前系统提示,错误信息
-
$^O - 操作系统的名字
-
STDIN,STDOUT,STDERR - 输入输出的默认句柄,可以作一定的自定义
-
=> - 声明一个hash时可以用来明确的表示出key=>value的对应关系
-
$^I- 指定备份的文件的后缀名,如此,被修改的文件将会自动以该后缀名保存一个副本
特殊用法
-
&Sub - 调用一个函数,虽然Perl有些规则让你在某些时候可以省略这里的&符号,但是处于一致性考虑,所以自定义的函数的调用,我一律采用此种方式。
-
$# - 用来取得模个数组的最大index, 一般情况下,也可以用-1来表示最后一个元素的index的
-
qw() - 快速声明一个字符串数组,可以省略那些烦人的引号
正则表达式
-
$ < digit > - 获取被括号捕获的匹配
-
$`, $&, $' - 获取匹配的字符串,以及其前后两个部分
-
^,$ - 字符串的始末位置,用作定位
常用函数
-
pop, push, shift, unshift, reverse - list的操作函数
-
keys,values, exists, each, delete - hash的操作函数
-
chomp, split, join, index, substr, sort - 字符串操作函数
-
sprintf,printf, print - 格式化输出函数
-
system, exec, `` - 系统命令调用函数
-
glob, unlink, mkdir, rmdir, rename,chmod,chown, open, close, opendir, closedir - 文件系统操作函数
-
stat, lstat,localtime,gmtime,utime - 文档属性,时间相关函数
-
hex, oct - 二进制,八进制,十六进制数转化成十进制的函数
-
grep, map - list高级操作函数
这些函数的详细介绍,都可以通过命令:
1 |
perldoc -f functionname |
查到
常用库
-
File::Basename - 根据path获取文件名或者文件路径
-
File::Spec - 根据文件名与路径组合成全路经
-
File::Find - 递归遍历某个目录下所有文件
-
XML::Simple - 以一个复杂的结构来表示xml文件,使用起来相当方便
-
Time::HiRes - 经常用来计算一个操作所耗费的时间
-
Getopt::Long - 当脚本需要复杂的输入参数与选项时用到
-
Cwd - 拿到当前工作目录
-
IO::File - 文件操作
-
Win32 - 当需要调用一些Windows API时我会用它
当然,这些库的详细介绍都可以在CPAN看到。
分享到:
相关推荐
"java_java学习课本_"的标题暗示了这是一份专为初学者设计的教育资源,旨在帮助新接触Java的人深入理解这门语言的核心概念和应用。 在描述中提到“对java进行了全面系统的讲解”,我们可以期待这份学习资料会涵盖...
初一(4)班历史课本剧.doc
标题《程序学习课本》指明了本书是面向程序学习者的教材,内容主要涉及Java编程语言。Java语言在众多编程语言中以其平台无关性、面向对象的特性和广泛的应用领域而受到众多开发者的青睐。 描述中提到本书从初学者的...
苏教版小学三年级数学下册电子课本电子书新PPT学习教案分析 本资源是一个基于苏教版小学三年级数学下册电子课本的电子书新PPT学习教案,旨在帮助小学三年级学生更好地学习数学知识。本资源的标题、描述、标签和部分...
高中历史课本录音.pdf
"苏教版小学数学五年级上册课本PPT学习教案.pptx" 苏教版小学数学五年级上册课本PPT学习教案是小学数学五年级上册课本的学习资源,旨在帮助学生更好地学习和理解数学知识。本资源包括64页PPT教学课件,涵盖小学数学...
学习车载毫米波雷达基础,推荐书籍 通信原理学习,课本资源
苏教一年级数学上册分一分课本PPT学习教案.pptx
这是北邮学习linux用的课本资料,不过是全英文版的,大家可得耐心看呀。
上海历史高考华师大版课本_第七册整理.pdf
英语26字母学习(课本).doc
【高中历史学习方法三部曲】是对高中生提升历史学习效果的有效策略,主要涵盖学会学习、高效阅读和自我学习三个核心部分。 首先,【学会学习】是基础。学生要明确自己是学习的主体,主动参与到学习过程中。预习是...
以下是一些高二历史学习的心得体会: 首先,乐于把自己“代入”历史。历史是由人的活动构成的,通过想象自己成为历史人物,可以更好地理解和感受历史事件。例如,把自己想象成历史上的决策者,面对各种挑战,思考...
《C语言课本(谭浩强)学习代码》涵盖了C语言的基础到高级概念,是学习C语言的重要参考资料。这个压缩包包含的子文件按照章节顺序排列,分别是CH01至CH13,代表了C语言的13个核心章节。下面我们将深入探讨这些章节中...
电子课件-《自主学习》
部编新人教版七年级历史上册课本问题参考答案.docx
【高中历史学习方法指导】 高中历史的学习方法与初中阶段有所不同,尤其在面对高考的压力时,高效的学习策略显得尤为重要。以下是一些关键的建议,旨在帮助高中生更好地理解和掌握历史知识。 首先,要紧扣教材,...
通过收集这些数据,学校历史教研组可以识别出影响学生学习兴趣的关键因素,从而制定相应策略,提升历史课程的教学质量,激发学生对历史学习的兴趣,推动新课程改革。例如,调整教学方法,优化教材内容,增加实践和...
课本剧皇帝的新装PPT学习教案.pptx