远志

个人站

欢迎来到我的个人站~


perl学习:数组

  • 数组的定义
  • 数组的赋值
  • 数组元素的访问

数组的定义

数组是标量数据的有序列表,是多个表来给你数据的一种合集。
可以包含任意多个元素,从0到全部占满内存。 以@符号作为标识。

数组的赋值

  1. 列表直接量:
    包含了一系列值的列表,以括号标识,中间用逗号隔开。
    (1,2,3)			##包含1,2,3三个数字的列表
    (1,2,3,)		##三个数字,最后逗号被省略
    ("test", 4.5)		##两个值
    ()			##空列表:零个元素
    
  2. 也可以用范围操作符..来产生列表直接量:
    该操作符会从左边的数字计数到右边,每次加1,产生一连串数字
    (1..5)			##代表(1,2,3,4,5)
    (5..1)			##空列表,从左到右,网上加
    (0, 2..6, 10)		##代表(0,2,3,4,5,6,10)
    ($m..$n)		##两个标量值之间累加产生的数字
    
  3. 对于纯字符串列表,使用qw来表示,可省去对字符串加引号的过程。
    形式为:
     qw(string1 string2 sting3)    ##空格、制表符、换行作为间隔符
    

    也可以用其它任何标点符号作为定界符,代替括号。
    qw!string1 string2 sting3!
    qw/string1 string2 sting3/

  4. 对数组进行赋值,可以直接将列表来给你传递给数组
    @array = ("string1",1.5,418)
    @array = qw(string1 string2 sting3)

  5. 如果列表直接量中包含标量、数组,则会进行取值作为元素,如:
     $test1 = "Hello"
     @array1 = ("World",123)
     @array2 = ($test1,@array1,"How are you")
     ## @array2 = ("Hello","World",123,"How are you")
    
  6. 数组之间进行赋值:
     @array1 = ("string1",1.5,418)
     @array2 = @array1
     ## @array2 = ("string1",1.5,418)
    
  7. 特殊的数组赋值方法:
    • 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)
    

数组元素的访问

  1. 通过索引对数组元素进行访问:
         @array = ("Hello","World",123)
         ##$array[0] = "Hello"
         ##$array[1] = "World"
         ##$array[2] = 123
    

    @array与$array是不相关的。

  2. 特殊索引值
    @array = ("Hello","World",1..99, qw/Long string/, 2..16) #共118个元素

    • $#<数组名>代表最后元素的索引值 $end = $#array ##值为117, 比元素个数少1

    • 使用负数索引

       $array[-1]		##最后一个元素,值为16
       $array[-2]		##最后一个元素,值为15
      

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦