骏马金龙 (新博客:www.junmajinlong.com)

网名骏马金龙,钟情于IT世界里的各种原理和实现机制,强迫症重症患者。爱研究、爱翻译、爱分享。特借此一亩三分田记录自己成长点滴!!!

随笔分类 -  Perl语言

摘要:在shell中使用 来对文件名进行通配扩展,在Perl中也同样支持文件名通配。而且perl中的glob通配方式和shell的通配方式完全一致,实际上perl的glob函数就是直接调用csh来通配的(如果不存在csh,则使用其它shell),也因此通配是一个效率较低的操作。 glob通配函数 注意: 阅读全文
posted @ 2018-09-08 16:59 骏马金龙 阅读(1766) 评论(0) 推荐(0) 编辑
摘要:File\::Copy复制文件 File\::Copy模块提供了copy函数和cp函数来复制文件,它们参数上完全一致,但行为上稍有区别。 用法大致如下: 两个参数都可以是文件或文件句柄或者文件句柄通配,第一个参数指定源,第二个参数指定目标 如果第一个参数是文件句柄,那么将直接从文件句柄来读取数据,如 阅读全文
posted @ 2018-09-08 15:33 骏马金龙 阅读(6369) 评论(0) 推荐(1) 编辑
摘要:注意,这些操作的对象是文件名(相对路径/绝对路径),而非文件/目录句柄,句柄只是perl和文件系统中文件的关联通道,而非实体对象。 创建文件 在unix类操作系统中有一个touch命令可以非常方便的创建文件,还能批量创建一些名称规律的文件。但实际上touch的主要介绍中却是"修改文件时间戳",创建文 阅读全文
posted @ 2018-09-06 23:24 骏马金龙 阅读(9993) 评论(0) 推荐(0) 编辑
摘要:在shell中通过test命令或者中括号 可以进行文件测试以及其它类型的测试,例如判断文件是否存在,比较操作是否为真等等。perl作为更强大的文本处理语言,它也有文件测试类表达式,而且和shell的文件测试用的字母符号都类似。 perl中测试文件的属性来源是perl的内置函数stat,它可以获得文件 阅读全文
posted @ 2018-09-05 00:29 骏马金龙 阅读(2250) 评论(0) 推荐(0) 编辑
摘要:open函数除了 这种高级重定向模式,perl也有对应的模式。 打开管道文件句柄 perl程序内部也支持管道,以便和操作系统进行交互。例如,将perl的输出在程序内部就输出给操作系统的命令,或者将操作系统的命令执行结果输出给perl程序内部。所以,perl有2种管道模式:句柄到管道、管道到句柄。 例 阅读全文
posted @ 2018-09-01 15:57 骏马金龙 阅读(1596) 评论(3) 推荐(1) 编辑
摘要:文件句柄 文件句柄用来对应要操作的文件系统中的文件,这么说不太严谨,但比较容易理解。首先为要打开的文件绑定文件句柄(称为打开文件句柄),然后在后续的操作中都通过文件句柄来操作对应的文件,最后关闭文件句柄。 如不理解文件句柄的概念,可将文件句柄看作Linux中文件描述符的概念(当然,它们是不同的,Pe 阅读全文
posted @ 2018-09-01 00:23 骏马金龙 阅读(3954) 评论(0) 推荐(3) 编辑
摘要:文件句柄相关变量 对应的官方手册:http://perldoc.perl.org/perlvar.html Variables related to filehandles 默认情况下: :输入行的分隔符以换行符为单位,可以使用 指定 :print输出行的分隔符为undef,可以使用 指定,例如指定 阅读全文
posted @ 2018-08-31 22:05 骏马金龙 阅读(1409) 评论(0) 推荐(0) 编辑
摘要:print、printf和say都可以输出信息。print和say类似,print不自带换行符,say自带换行符,但要使用say,必须写use语句 ,printf像C语言的printf一样,可以定制输出格式,不过我这perl似乎不支持printf,一用就报错,不知道为什么。它们有返回值:如果输出成功 阅读全文
posted @ 2018-08-29 22:59 骏马金龙 阅读(2620) 评论(0) 推荐(1) 编辑
摘要:程序名:$0 表示当前 正在运行的Perl脚本名 。有3种情况: 1. 如果执行方式为 ,则 的值为 而非perl命令本身 2. 如果执行方式为 ,则 的值为 3. 如果执行的是 或`perl E $0 e E` 命令行参数ARGV perl将perl命令行的参数列表放进数组ARGV(@ARGV)中 阅读全文
posted @ 2018-08-29 21:38 骏马金龙 阅读(27769) 评论(0) 推荐(2) 编辑
摘要:自增和自减 perl也支持数值类型的自增和自减操作。不仅如此,还支持字符、字符串的自增、自减。 如果自增(++)和自减( )符号放在数值的前面,则先增减,再返回; 如果自增(++)和自减( )符号放在数值的后面,则先返回,再增减; 如果自增、自减操作是独立的一句表达式,则自增、自减符号放在前面或后面 阅读全文
posted @ 2018-08-26 10:57 骏马金龙 阅读(2376) 评论(0) 推荐(0) 编辑
摘要:hash类型 hash类型也称为字典、关联数组、映射(map)等等,其实它们都是同一种东西:键值对。每一个Key对应一个Value。 hash会将key/value散列后,按序放进hash桶。 散列后的顺序和存放数据的顺序无关 hash类型的key只能是字符串,value可以是字符串、数值、unde 阅读全文
posted @ 2018-08-23 17:23 骏马金龙 阅读(2504) 评论(0) 推荐(0) 编辑
摘要:die和warn die可以在出现错误的时候停止程序,并给出消息。默认会输出出错的程序名称和出错行号 warn函数和die函数类似,但和die的区别是不会终止程序 die和warn的参数末尾如果给了 ,将不会输出出错的程序名称和出错的程序行号 可以自动探测操作系统层面上的错误并停止程序 例如,下面打 阅读全文
posted @ 2018-08-22 22:01 骏马金龙 阅读(2007) 评论(0) 推荐(0) 编辑
摘要:子程序(subroutine) perl中的子程序其实就是自定义函数。它使用 关键字开头,表示声明一个子程序 子程序名称有独立的名称空间,不会和其它名称冲突 Perl中的 子程序中可以定义、引用、修改全局变量 ,这和几乎所有的语言都不同。当然,也可以定义局部变量 perl中使用 的方式调用SUB_N 阅读全文
posted @ 2018-08-21 16:47 骏马金龙 阅读(2102) 评论(2) 推荐(1) 编辑
摘要:本篇内容已转移,请移尊步:https://www.junmajinlong.com/perl/index/ 本篇内容已转移,请移尊步:https://www.junmajinlong.com/perl/index/ 本篇内容已转移,请移尊步:https://www.junmajinlong.com/ 阅读全文
posted @ 2018-08-21 16:32 骏马金龙 阅读(17111) 评论(0) 推荐(10) 编辑
摘要:因为是比较凌乱的用法规则收集,所以能看懂则看,不能看懂也无所谓。以后也会遇到。 Perl脚本第一行使用 。Perl的后缀名一般为".plx"或".pl",运行时使用 即可 例如,1.plx内容如下: 执行该脚本: 注释。Perl只支持" "注释,所以只支持单行注释、行内到结尾注释 Perl脚本中,除 阅读全文
posted @ 2018-08-21 16:16 骏马金龙 阅读(2479) 评论(0) 推荐(3) 编辑
摘要:perl中的上下文 在perl中,很多地方会切换上下文。所谓上下文,它的 重点在于同一个表达式出现在不同地方,得到的结果不同 。换句话说,同一个表达式,它表达的值不是固定的。这就像是同一个单词,在不同语境下的意思不同。 例如,运算操作符决定数值是一个数字还是一个字符串。 中的2和3都是数值,因为操作 阅读全文
posted @ 2018-08-21 16:08 骏马金龙 阅读(1441) 评论(0) 推荐(0) 编辑
摘要:列表和数组 列表 使用括号包围的元素,括号中的元素使用逗号隔开的是列表。 列表中的元素可以是字符串、数值、undef或它们的混合。 列表中的字符串元素需要使用引号包围。 空列表是括号中什么都没有的列表, 空列表返回的是undef 。但是赋值给别人时,不会当作undef,而是什么都没有(见稍后的例子) 阅读全文
posted @ 2018-08-21 16:06 骏马金龙 阅读(3933) 评论(0) 推荐(0) 编辑
摘要:undef和defined()函数 undef表示的像是数据库中的"null"。它表示空,啥也没有,是完全未定义的。这不等于字符串的空,不等于数值0,它是另一种类型。 在某些时候,perl程序本该报错的时候(如使用未赋值的变量,参数越界,读取文件时到了文件结尾eof),perl实际上不会报错,而是返 阅读全文
posted @ 2018-08-21 16:04 骏马金龙 阅读(2832) 评论(0) 推荐(0) 编辑
摘要:读取标准输入\ 读取到的结果中,如果没有意外,都会自带换行符。 例如,test.plx文件内容: 注意上面的else语句中, 后面没有加换行符,因为``自带换行符。 下面的命令,将等待输入和回车。如果直接回车,则if条件为真。 下面是和bash shell交互。 注意上面第二条语句中,heihei会 阅读全文
posted @ 2018-08-21 15:58 骏马金龙 阅读(6731) 评论(0) 推荐(0) 编辑
摘要:布尔值判断 如果是数字,0表示假,其它所有数字都是真。 如果是字符串,空字符串('')为假,其它所有字符串为真(有例外,见下一条)。 如果是字符串'0',perl是当作数值0来处理的,所以这是唯一的非空但为假的字符串。 如果既不是数字,也不是字符串,那么先转换为数字或字符串再做判断(也就是"unde 阅读全文
posted @ 2018-08-21 15:57 骏马金龙 阅读(1809) 评论(0) 推荐(0) 编辑