Perl数组用法详解

本文概述

  • Perl简单数组示例
  • Perl阵列存取
  • Perl阵列大小或长度
  • Perl替换数组元素, splice()
  • Perl字符串到数组, split()
  • Perl数组转换为字符串, join()
  • Perl合并两个数组, merged()
  • Perl排序数组, sort()
Perl数组变量存储标量值的有序列表。
要引用Perl数组的单个元素, 变量名将以美元($)符号开头, 后跟方括号中的元素索引。
句法:
@arrayName = (element1, element2, element3..);

Perl简单数组示例这是使用Perl数组的简单示例。
#!/usr/bin/perl@num = (2015, 2016, 2017); @string = ("One", "Two", "Three"); print "$num[0]\n"; print "$num[1]\n"; print "$num[2]\n"; print "$string[0]\n"; print "$string[1]\n"; print "$string[2]\n";

输出
201520162017OneTwoThree

在上面的示例中, 我们定义了两个数组, 一个数组包含数字元素, 另一个数组包含字符串元素。这两个数组都印有它们的索引元素。
Perl阵列存取要访问Perl数组的单个元素, 请在变量名称前使用($)符号。你可以假定$符号代表单数, @符号代表复数。
变量名称后面将带有方括号, 并在其中带有索引号。索引将从左侧的0开始, 从右侧的-1开始。
@months = qw/Jan Feb Mar Apr May Jun Jul Aug Sept Oct Nov Dec/; print "$months[0]\n"; print "$months[1]\n"; print "$months[7]\n"; print "$months[9]\n"; print "$months[6]\n"; print "$months[-3]\n";

输出
JanFebAugOctJulOct

Perl阵列大小或长度数组的大小由数组上的标量上下文确定。返回的值将始终比最大索引大1。简而言之, 数组的大小为($#array + 1)。在这里, $#array是数组的最大索引。
@array = (you, me, us); $array[5] = 4; $size = @array; $index_max = $#array; print "Size:$size\n"; print "Maximum Index: $index_max\n";

输出
Size: 6Maximum Index: 5

在输出中, 只有三个元素包含信息, 但是Give数组共有5个元素。
你可以使用某些数组函数从数组中添加或删除元素。
我们将讨论以下Perl数组函数:
  • 流行音乐
  • 转移
  • 换档
1)推入阵列
push数组函数在数组末尾追加一个新元素。
@array = ("pink", "red", "blue"); push @array, "orange"; print "@array\n";

输出
pink red blue orange

在上面的程序中, “ 橙色” 元素添加到数组的末尾。
2)弹出阵列
【Perl数组用法详解】pop数组函数从数组中删除最后一个元素。
@array = ("pink", "red", "blue"); pop @array; print "@array\n";

输出
pink red

在上面的程序中, ” blue” 元素已从数组末尾删除。
3)移位数组
移位数组功能删除了数组的最左侧元素, 从而将数组缩短了1。
@array = ("pink", "red", "blue"); shift @array; print "@array\n";

输出
red blue

在上面的程序中, “ 粉红色” 已从阵列中删除。
4)在阵列上移动
unshift array函数在数组的开头添加一个新元素。
@array = ("pink", "red", "blue"); unshift @array, "orange"; print "@array\n";

输出
orange pink red blue

在上面的程序中, 在数组的开头添加了” 橙色” 。
Perl替换数组元素, splice()拼接数组函数删除定义的元素, 并用给定列表替换它们。
@alpha = (A..Z); print "Before - @alpha\n"; splice(@alpha, 8, 8, U..Z); print "After - @alpha\n";

输出
Before - A B C D E F G H I J K L M N O P Q R S T U V W X Y ZAfter -A B C D E F G H U V W X Y Z Q R S T U V W X Y Z

在上述程序中, 替换从第9个位置(I)开始计数到8个元素, 即P。
Perl字符串到数组, split()借助split()函数, 我们可以将字符串拆分为字符串数组并返回它。
# original string$string = "Where-There-Is-A-Will-There-Is-A-Way"; # transforming strings into arrays.@string = split('-', $string); print "$string[4]\n";

输出
Will

在上面的程序中, 我们将$ string转换为连字符(-)值的数组。现在, 从该数组中, 我们已经打印出数组的第四个元素。
Perl数组转换为字符串, join()join()函数用于组合数组以构成一个字符串。它将单独的数组合并为一个字符串并返回它。
# original string$string = "Where-There-Is-A-Will-There-Is-A-Way"; # transforming arrays into strings.@string = split('-', $string); $string_full = join( '-', @string ); print "$string_full\n";

输出
Where-There-Is-A-Will-There-Is-A-Way

在上面的程序中, 字符串以连字符(-)分隔。我们在$ string_full中使用了join()并将其打印出来。
Perl合并两个数组, merged()可以使用merged()函数将两个数组合并为单个字符串, 从而删除它们之间的所有逗号。
#two arrays@array1 = ("Girl", "in", "front", "of", "me"); @array2 = ("is", "very", "beautiful"); #merging both the arrays@merged = (@array1, @array2); print "@merged\n";

输出
Girl in front of me is very beautiful

在上面的程序中, 将array1和array2合并为一个字符串, 然后打印。
Perl排序数组, sort()要对数组排序, 请使用sort()数组函数。 sort()函数根据ASCII标准对数组的所有元素进行排序。
# defining array@days = ("sun", "mon", "tue", "wed", "thu", "fri", "sat"); print "Original array: @days\n"; # sorting array@days = sort(@days); print "Sorted array: @days\n";

输出
Original array: sun mon tue wed thu fri sat Sorted array: fri mon sat sun thu tue wed

在上面的程序中, 我们同时打印了原始数组和排序数组。该数组按字母顺序排序。

    推荐阅读