Perl 数组
-
数组
数组是存储标量值的有序列表的变量。数组变量前面有一个“@”符号。要引用数组的单个元素,将使用带符号名称的美元符号($),后跟方括号中的元素索引。这是使用数组变量的简单示例-在这里,我们仅在$符号之前使用了转义符号(\)进行打印。其他Perl会将其理解为变量并打印其值。执行后,将产生以下结果-在Perl中,列表和数组术语经常被使用,就好像它们是可互换的一样。但是列表是数据,而数组是变量。 -
数组创建
数组变量以@符号为前缀,并使用括号或qw运算符填充。例如-第二行使用qw//运算符,该运算符返回字符串列表,并用空格分隔定界的字符串。在这个例子中,这导致了一个四元素数组。第一个元素是“this”,最后一个(第四个)是“array”。这意味着您可以使用以下不同的行-您还可以通过分别分配每个值来填充数组,如下所示: -
访问数组元素
从数组访问单个元素时,必须在变量前加一个美元符号($),然后在变量名称后的方括号内附加元素索引。例如-这将产生以下结果-数组索引从零开始,因此要访问第一个元素,您需要将0用作索引。您还可以给定一个负索引,在这种情况下,您可以从数组的结尾而不是开头选择元素。这意味着以下内容- -
-
数组大小
数组的大小可以使用数组的标量上下文来确定-返回的值将是数组中元素的数量-返回的值将始终是数组的物理大小,而不是有效元素的数量。您可以演示一下,使用此片段,标量@array和$#array之间的区别如下-这将产生以下结果-数组中只有四个元素包含信息,但是数组的长度为51个元素,最高索引为50。 -
在数组中添加和删除元素
Perl提供了许多有用的功能来添加和删除数组中的元素。您可能有一个问题是什么功能?到目前为止,您已经使用打印功能来打印各种值。类似地,还有其他各种功能或有时称为子例程的子例程,可用于各种其他功能。类型 描述 push @ARRAY, LIST 将列表的值压入数组的末尾。 pop @ARRAY 弹出并返回数组的最后一个值。 shift @ARRAY 将数组的第一个值移开并返回,将数组缩短1并向下移动所有内容。 unshift @ARRAY, LIST 将列表添加到数组的最前面,并返回新数组中的元素数。 这将产生以下结果- -
-
更换数组元素
现在我们将引入另一个名为splice()的函数,该函数具有以下语法:此函数将删除由OFFSET和LENGTH指定的@ARRAY元素,如果指定,则将其替换为LIST。最后,它返回从数组中删除的元素。以下是示例-这将产生以下结果-在这里,实际替换从第6个数字开始,然后用数字21、22、23、24和25将5个元素从6替换为10。 -
将字符串转换为数组
让我们看看另一个名为split()的函数,它具有以下语法-此函数将字符串拆分为字符串数组,然后将其返回。如果指定了LIMIT,则最多拆分为该数量的字段。如果省略PATTERN,则在空白处分割。以下是示例-这将产生以下结果- -
将数组转换为字符串
我们可以使用join()函数重新加入数组元素并形成一个长标量字符串。此函数具有以下语法-此函数将LIST的单独字符串连接成单个字符串,且字段之间用EXPR值分隔,然后返回该字符串。以下是示例-这将产生以下结果- -
排序数组
sort()函数对根据ASCII数字标准的阵列中的每个元素。此函数具有以下语法-该函数对LIST排序并返回排序后的数组值。如果指定了SUBROUTINE,则在对元素进行排序时将应用SUBTROUTINE内部的指定逻辑。这将产生以下结果-请注意,排序是根据单词的ASCII数字值进行的。因此,最好的选择是首先将数组的每个元素转换为小写字母,然后执行排序功能。 -
$[ 特殊变量
到目前为止,您已经看到了我们在程序中定义的简单变量,并使用它们来存储和打印标量和数组值。Perl提供了许多特殊变量,它们具有预定义的含义。我们有一个特殊变量,写为 $[。此特殊变量是包含所有数组的第一个索引的标量。由于Perl数组具有从零开始的索引,因此 $[ 几乎始终为0。但是,如果将 $[ 设置为1,则所有数组都将使用基于on的索引。建议不要使用零以外的任何其他索引。但是,让我们举一个例子来说明 $[ 变量的用法-这将产生以下结果- -
-