learning perl(一)标量 数组 哈希

初次学习perl语言,特写下博客记录自己的学习经历,既是一个简单的总结,也希望借此来使我坚持走下去。


perl有三种数据类型,分别是标量($),数组(@),哈希(%)

1.标量(scalar)

perl中的标量与C++中的变量类似,不同的是不管是声明(perl不需要声明标量大笑)还是使用都要加’$‘符号,所谓标量,一个词,包含很多东西。

a)数字。如浮点数,整数(格式都是双精度浮点数),以及任意进制。数字中间可以用’_‘相连,如12_34_56_78 = 12345678。

操作符很简单了,四则运算(+-*/),取模(%),乘幂(2**3)。

b) 字符串。perl中的字符串没有限制,在内存允许范围内,可以任意长度微笑。字符串的分类有两种:

单引号内的字符串,如’hello‘,除了单引号和反斜线(需要加反斜线转义),其他字符都代表其本身。

双引号内的字符串,如"world",与上面相似,不过可以使用各种转义字符;还可以使用变量内插。

字符串操作符可以用'.'连接,如"hello"."world";字符串重复操作符’x‘(若是数字,会先取整),如“hi” x 3 = “hihihi”。


c) 数字与字符串的转换。perl会自动进行相互转换,这需要判断语境了。


d) 标量的赋值。与其他语言相同,也有=, +=, .= 等等。 如果标量未被赋值,则用空字符串代替。


e)比较操作符。==(eq), !=(ne), <(lt),  <=(le),  >(gt),  >=(ge)。


2.数组(array)


数组使用@符号表示,如@arr1。但是访问数组元素一般使用$arr1[0]。

数组的索引值可以为负,表示从最后一个算起,如$arr1[-1]表示数组最后一个元素。另外,取数组的总长度,即数组的元素个数,可以用$#arr1。

列表的赋值。@arr1 = qw/hello world /;使用范围操作符'..'可以表示一个范围,如1..4 相当于1 2 3 4。

数组的操作。可以使用pop,push,shift,unshift来获取或者放入数组前后的元素,如push @arr1, hello。 $val = pop @arr1。reverse 反转数组的元素,sort进行排序,使用foreach更好的输出,如 foreach $val(@arr1){

print "$val\n";

}

可以输出全部元素。而如果不使用$val,会自动用默认变量$_代替,非常方便。

数组在不同的上下文环境会改变自己的含义,有时是一个数组,有时是一个标量。


3.哈希(hash)


哈希,通俗来说就是键-值对。用%hash表示。

哈希的赋值,一种是$hash{$key} = $val;一种是%hash = ("1" => "hello" , "2" => "world");

哈希函数。keys与values分别以数组返回哈希的全部键和值。而$num = %hash得到哈希的元素个数。each函数返回每个键值对,可以这样用:

while (($key, $val) = each %hash) {

print "$key => $val\n";

}

exists函数,检查是否含有某个键,如 if (exists $hash{$key}){ }。delete函数,删除指定的键与值,如 delete $hash{$key}。

这些就是perl中基本的数据类型,非常简单,但是灵活掌握会对perl的使用有很大的帮助,一点总结非常有限,以后会随时补充。加油!微笑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章