标签:Python
tr和y///是等价的。用来实现一一映射,但也有额外的功能,就像Linux下的tr命令一样。 用法: tr/SEARCH/REPLACEMENT/cdsr y/SEARCH/REPLACEMENT/cdsr 其中: c:取search的补集,将search中未找到的字符全都替换成replaceme
Perl模块管理 perl有自带的模块,还有第三方模块。自带的模块是随perl安装而安装好的,第三方模块需要从CPAN(Comprehensive Perl Archive Network)上下载并安装,可以从https://metacpan.org中查找所需第三方模块。 可以借助perldoc '
use加载模块 安装模块后,都会有对应的文档,可以通过perldoc MODULE_NAME来获取模块的使用帮助。 例如:获取File::Utils的使用帮助。 perldoc File::Utils 要在perl程序中使用模块,需要使用use来装载(load)模块。例如,File::Basenam
fork + exec fork是低层次的系统调用,通过复制父进程来创建子进程。 fork的行为 fork用来拷贝当前进程,生成一个基本完全一样的子进程。 my $pid=fork(); 如果fork成功: 则表示成功创建子进程,这时会有两条执行路线:继续执行父进程、执行子进程 fork成功时,会返
Perl字符串相关函数 字符串的内置函数有: chomp, chop, chr, crypt, fc, hex, index, lc, lcfirst, length, oct, ord, pack, q//, qq//, reverse, rindex, sprintf, substr, tr/
内置的列表函数有: grep, join, map, qw//, reverse, sort, unpack join:将多个元素使用给定字符串联起来join grep:从列表中筛选符合条件的元素执行对应的代码块grep map:对列表中的元素执行给定操作,后文详细示例map reverse:反转列
Perl数组和hash相关函数 内置的数组函数有: each, keys, pop, push, shift, splice, unshift, values 内置的hash函数有: delete, each, exists, keys, values 有些是重复的。所以放在一起解释。 数组相关函数
语法 perl命令行在运行"一行式程序"非常有用,用法如下: [root@redisa-b ~]# perl --help Usage: perl [switches] [--] [programfile] [arguments] -0[octal] specify recor
在perl中只有3种基本的数据结构:标量、数组、hash。变量可以是数值,可以是字符串。 这三种基本数据结构的数据存储方式如下: 但是,仅仅由这3种基本结构,就可以构造出更复杂的数据结构,例如hash中用数组做value,数组中用hash做元素。 但是,perl对于底层的一些数据存储,很多时候对这
有时候可能会需要检查引用是什么类型的,免得我们期待是一个数组引用,却给了一个hash引用。 ref函数可以用来检查引用的类型,并返回类型。perl中内置了如下几种引用类型,如果检查的不是引用,则返回undef。 SCALAR ARRAY HASH CODE R
可有构建匿名的对象,这样就没必要去为只用一两次的数组、hash去取名字,有时候取名是很烦的事。 使用中括号[]构建匿名数组 使用大括号{}构建匿名hash 不包含任何元素的[]和{}分别是匿名空数组、匿名空hash 构造匿名对象 例如,在数组、hash中构建匿名数组: @name=('fairy',
首先是深、浅拷贝的概念: 浅拷贝:shallow copy,只拷贝第一层的数据。Perl中赋值操作就是浅拷贝 深拷贝:deep copy,递归拷贝所有层次的数据,Perl中Clone模块的clone方法,以及Storable的dclone()函数是深拷贝 所谓第一层次,指的是出现嵌套的复杂数据结构时
输出复杂结构 Data::Dumper、Data::Dump、Data::Printer都可以用来输出复杂的数据结构。本文只介绍简单的几个输出形式,以后再需要的地方再详细介绍。 前两者建议传递数据结构的引用给对应的函数、方法,当然直接传递非引用也不会错(标量、数组、哈希或引用都允许)。第三个Prin
Perl提供了一个Storable模块,用来对数据结构进行序列化(serialization,Perl中称为冻结),也就是将数据结构保存为二进制数据。 序列化后的数据可以写入文件实现持久化,可以将持久化文件拷贝给远程机器 也可以通过网络套接字将序列化数据传递给远程机器 序列化后的数据在任意机器上都可
子程序也有引用,也有匿名子程序。假设你已经具备了数组、hash的引用知识,所以这里简单介绍一下。 $ref_sub = &mysub; # 子程序引用,&符号必须不能少 &{$ref_sub}(ARGS) # 解除子程序引用,传递参数ARGS &
把以前一直只限于知道,却不清晰理解的这几个概念完完整整地梳理了一番。内容参考自wiki页面,然后加上自己一些理解。 词法作用域和动态作用域 不管什么语言,我们总要学习作用域(或生命周期)的概念,比如常见的称呼:全局变量、包变量、模块变量、本地变量、局部变量等等。不管如何称呼这些作用域的范围,实现它们
在Perl中,子程序的引用常用来做回调函数(callback)、闭包(closure),特别是匿名子程序。 回调函数(callback) 关于什么是回调函数,见一文搞懂:词法作用域、动态作用域、回调函数、闭包 以File::Find模块的find函数为例,它用来搜索给定目录下的文件,然后对每个搜索到
目前还没介绍Perl的面向对象,所以这节内容除了几个注意点,没什么可讲的。 以前经常使用大写字母的句柄方式(即所谓的裸字文件句柄,bareword filehandle),现在可以考虑转向使用变量文件句柄的形式,因为只有使用变量句柄的方式,才能创建文件句柄引用。 open DATA,">>