微信公众号:生物坊
本期为10天了解perl第二部分,本期讲解perl语言最常用到的部分:变量
更新时间:,10天了解perl往期内容请参考文末【10天perl自学之往
期目录】[1]
温馨提示:文章内代码可以左右拖动以查看被遮挡部分。
perl变量 简介
Perl的变量(可以理解为一种用来放东西的容器)有三种类型:标量(scalar)、数组(array)和哈希(hashes)每种类型都有属于自己的符号:分别是$、@和%。变量定义(就是创建一个可以来盛放东西的容器)使用my关键字,生命期直到其所在的代码块结束或者文件的末尾。做个比喻,不同的容器类型可以放不同形式的东西,以不同的组织形式放,比如书架和纸箱都可以放书,但显然它们对书本的堆叠方式不同。
本期目录
Scalar变量:Array变量:Hash变量:Scalar变量:
一个scalar变量能包含:
• undef(空的)
• 数值(Perl不区分整形和浮点类型)
• 字符串
• 其他变量的引用。
Array变量:
Array变量是包含一个scalar列表的、由从0开始的整形数为下标存取的变量。在Python里被称为list,而在PHP里被称为array。数组可以用一个圆括号包围的scalar列表来声明(译者注:原文declaration,而这里实际表达的含义应为“初始化”,而不是对于变量标识符的声明,下同):
同时定义了两个叫相同名字的scalar变量$var和包含scalar元素$var[0]的array变量@var是没有冲突的(计算机是可以区分的),不过会对代码的读者造成一些误导,所以请避免这种情况。
取得array的长度
调用Perl脚本时使用的参数列表被保存在内置的array变量@ARGV中。
变量可以被插入到字符串中被求值:
Hash变量:
Hash变量是包含一个scalar列表的(一堆scalar变量)、由字符串为下标存取的变量。就好比我们拿到了一本字典就可以根据目录找到某个字的具体解释一样,字典存取了目录和具体字词解释的一一对应关系,使得我们可以通过目录找到字词解释,hash变量也是这样存储和读取的。
请注意这个声明与array何其相似。事实上,这个双箭头符号=>被称为“fat comma”(胖逗号),因为它与逗号完全等价。Hash变量由偶数个元素组成的列表来声明,其中偶数下标(0、2、……)的元素都被当做字符串使用。
与array一样,你也需要用美元符号来存取hash中的值,因为取到的值是scalar而非hash:
注意在这里使用的花括号。同样的,同时存在scalar变量$var和包含scalar元素$var{"foo"}的hash变量%var是没有冲突的。你可以将一个hash转换为两倍数量元素的array,原先hash中的键和值在转换后的array中交替出现(反向的转换也同样简单):
然而有一点与array不同,hash中的键没有特定的保存顺序,而是以一种比较高效的方式进行存储。因此,需要注意转换后的array会将hash中的键值对重新排列次序:
回顾一下,我们使用方括号来取array中的值,而使用花括号来取hash中的值。方括号是一个有效的数值运算符,而花括号是一个有效的字符串运算符,因此事实上,作为下标的值是数值还是字符串类型其实并不重要
觉得有用的话还请各位推荐本公众号给周边的朋友哦
生物坊
专注做生信的引路人
不做具体技术细节的推广
领取专属 10元无门槛券
私享最新 技术干货