- 数组的定义
- 数组的赋值
- 数组元素的访问
数组的定义
数组是标量数据的有序列表,是多个表来给你数据的一种合集。
可以包含任意多个元素,从0到全部占满内存。
以@符号作为标识。
数组的赋值
- 列表直接量:
包含了一系列值的列表,以括号标识,中间用逗号隔开。(1,2,3) ##包含1,2,3三个数字的列表 (1,2,3,) ##三个数字,最后逗号被省略 ("test", 4.5) ##两个值 () ##空列表:零个元素
- 也可以用范围操作符
..
来产生列表直接量:
该操作符会从左边的数字计数到右边,每次加1,产生一连串数字(1..5) ##代表(1,2,3,4,5) (5..1) ##空列表,从左到右,网上加 (0, 2..6, 10) ##代表(0,2,3,4,5,6,10) ($m..$n) ##两个标量值之间累加产生的数字
- 对于纯字符串列表,使用
qw
来表示,可省去对字符串加引号的过程。
形式为:qw(string1 string2 sting3) ##空格、制表符、换行作为间隔符
也可以用其它任何标点符号作为定界符,代替括号。
qw!string1 string2 sting3!
qw/string1 string2 sting3/
-
对数组进行赋值,可以直接将列表来给你传递给数组
@array = ("string1",1.5,418)
@array = qw(string1 string2 sting3)
- 如果列表直接量中包含标量、数组,则会进行取值作为元素,如:
$test1 = "Hello" @array1 = ("World",123) @array2 = ($test1,@array1,"How are you") ## @array2 = ("Hello","World",123,"How are you")
- 数组之间进行赋值:
@array1 = ("string1",1.5,418) @array2 = @array1 ## @array2 = ("string1",1.5,418)
- 特殊的数组赋值方法:
- pop和push赋值
- shift和unshift赋值
pop操作符:
取出数组中最后一个元素,同时返回该元素值。
@array = (5..9) ##@array是(5,6,7,8,9) $test1 = pop(@array) ##$test1为9, @array是(5,6,7,8) $test1 = pop(@array) ##$test2为8, @array是(5,6,7)
push操作符:
添加一个元素(或者一串元素)到数组的尾端。@array = (5,6) push(@array, 8) ##@array为(5,6,8) push(@array, 1..5) ##@array为(5,6,8,1,2,3,4,5)
shift操作符:
取出数组最左边的元素,同时返回该元素值。@array = (5..9) ##@array是(5,6,7,8,9) $test1 = shift(@array) ##$test1为5, @array是(6,7,8,9) $test2 = shift(@array) ##$test2为6, @array是(7,8,9)
unshift操作符:
添加一个元素(或者一串元素)到数组的前端。@array = (5,6) push(@array, 8) ##@array为(8,5,6) push(@array, 1..5) ##@array为(1,2,3,4,5,8,5,6)
数组元素的访问
- 通过索引对数组元素进行访问:
@array = ("Hello","World",123) ##$array[0] = "Hello" ##$array[1] = "World" ##$array[2] = 123
@array与$array是不相关的。
-
特殊索引值
@array = ("Hello","World",1..99, qw/Long string/, 2..16) #共118个元素
-
用
$#<数组名>
代表最后元素的索引值$end = $#array ##值为117, 比元素个数少1
-
使用负数索引
$array[-1] ##最后一个元素,值为16 $array[-2] ##最后一个元素,值为15
-