📜  Perl数组

📅  最后修改于: 2021-01-07 08:25:24             🧑  作者: Mango

Perl阵列

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";

输出:

2015
2016
2017
One
Two
Three

在上面的示例中,我们定义了两个数组,一个数组包含数字元素,另一个数组包含字符串元素。这两个数组都印有它们的索引元素。

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";

输出:

Jan
Feb
Aug
Oct
Jul
Oct

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: 6
Maximum Index: 5

在输出中,只有三个包含信息的元素,但是Give数组共有5个元素。

Perl数组功能

您可以使用某些数组函数从数组中添加或删除元素。

我们将讨论以下数组Perl函数:

  • 流行音乐
  • 转移
  • 换档

1)推入阵列

push数组函数在数组末尾附加一个新元素。

@array = ("pink", "red", "blue");
push @array, "orange";
print "@array\n";

输出:

pink red blue orange

在上面的程序中,在数组的末尾添加了“橙色”元素。

2)弹出阵列

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 Z
After -    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()

随着分裂()函数的帮助下,我们可以将一个字符串分解成字符串,并返回它的阵列。

# original string
$string = "Where-There-Is-A-Will-There-Is-A-Way";
# transforming strings into arrays.
@string = split('-', $string);
print "$string[4]\n"; 

输出:

Will

在上面的程序中,我们将$字符串转换为连字符(-)值的数组。现在,从该数组中,我们已经打印出数组的第四个元素。

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

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