2K+ 次查看
您可以使用标量上下文对 keys 或 values 获取哈希的大小,即元素的数量。简单来说,首先您需要获取 keys 或 values 的数组,然后就可以获取数组的大小,如下所示:示例 实时演示#!/usr/bin/perl %data = ('John Paul' => 45, 'Lisa' => 30, 'Kumar' => 40); @keys = keys %data; $size = @keys; print "1 - 哈希大小:为 $size"; @values = values %data; $size = @values; print "2 - 哈希大小:为 $size";输出这将产生以下结果... 阅读更多
477 次查看
如果您尝试访问 Perl 哈希中不存在的键/值对,通常会得到未定义的值,如果启用了警告,则会在运行时生成警告。您可以使用 exists 函数来解决此问题,如果命名键存在,则该函数返回 true,无论其值为多少:示例 实时演示#!/usr/bin/perl %data = ('John Paul' => 45, 'Lisa' => 30, 'Kumar' => 40); if( exists($data{'Lisa'} ) ) { print "Lisa 是 $data{'Lisa'} 岁"; } else { print "我不知道 Lisa 的年龄"; ... 阅读更多
3K+ 次查看
您可以使用 keys 函数在 Perl 中获取哈希中所有键的列表,该函数具有以下语法:keys %HASH此函数返回命名哈希的所有键的数组。以下是示例:示例 实时演示#!/usr/bin/perl %data = ('John Paul' => 45, 'Lisa' => 30, 'Kumar' => 40); @names = keys %data; print "$names[0]"; print "$names[1]"; print "$names[2]";输出这将产生以下结果:Lisa John Paul Kumar同样,您可以使用 values 函数获取所有值的列表。此函数具有以下语法:语法values %HASH此函数返回一个普通... 阅读更多
303 次查看
在 Perl 中访问哈希中的单个元素时,必须在变量前面加上美元符号 ($),然后在变量名称后面用花括号括起元素键。例如:示例 实时演示#!/usr/bin/perl %data = ('John Paul' => 45, 'Lisa' => 30, 'Kumar' => 40); print "$data{'John Paul'}"; print "$data{'Lisa'}"; print "$data{'Kumar'}";输出这将产生以下结果:45 30 40
149 次查看
Perl 哈希可以通过以下两种方式之一创建。在第一种方法中,您逐个将值分配给命名键:$data{'John Paul'} = 45; $data{'Lisa'} = 30; $data{'Kumar'} = 40;在第二种情况下,您使用列表,该列表通过从列表中获取各个对来转换:对的第一个元素用作键,第二个元素用作值。例如:%data = ('John Paul', 45, 'Lisa', 30, 'Kumar', 40);为了清楚起见,您可以使用 => 作为的别名,以指示键/值对,如下所示:%data = ... 阅读更多
421 次查看
Perl 中的列表表示法与数组的表示法相同。您可以通过将方括号附加到列表并提供一个或多个索引来从数组中提取元素:示例 实时演示#!/usr/bin/perl $var = (5,4,3,2,1)[4]; print "var 的值为 $var"输出这将产生以下结果:var 的值为 1同样,我们可以提取切片,尽管不需要前导 @ 字符:示例 实时演示#!/usr/bin/perl @list = (5,4,3,2,1)[1..3]; print "list 的值为 @list";输出这将产生以下结果:list 的值为 4 3 2
1K+ 次查看
因为 Perl 中的数组只是一系列用逗号分隔的值,所以您可以将它们组合在一起,如下所示:示例 实时演示#!/usr/bin/perl @numbers = (1,3,(4,5,6)); print "numbers = @numbers";输出这将产生以下结果:numbers = 1 3 4 5 6嵌入的数组成为主数组的一部分,如下所示:示例 实时演示#!/usr/bin/perl @odd = (1,3,5); @even = (2, 4, 6); @numbers = (@odd, @even); print "numbers = @numbers";输出这将产生以下结果:numbers = 1 3 5 2 4 6
304 次查看
Perl 提供了许多特殊变量,这些变量具有预定义的含义。我们有一个特殊变量,写成 $[。此特殊变量是一个标量,包含所有数组的第一个索引。因为 Perl 数组使用基于零的索引,所以 $[ 几乎总是 0。但是,如果您将 $[ 设置为 1,那么所有数组都将使用基于一的索引。建议不要使用除零以外的任何其他索引。但是,让我们举一个例子来展示 $[ 变量的用法:示例 实时演示#!/usr/bin/perl # 定义一个数组 @foods = qw(pizza steak chicken burgers); print "食物:@foods"; # 让我们... 阅读更多
658 次查看
Perl 中的 sort() 函数根据 ASCII 数字标准对数组的每个元素进行排序。此函数具有以下语法:语法sort [ SUBROUTINE ] LIST此函数对 LIST 进行排序并返回排序后的数组值。如果指定了 SUBROUTINE,则在排序元素时会应用 SUBROUTINE 内部的指定逻辑。示例 实时演示#!/usr/bin/perl # 定义一个数组 @foods = qw(pizza steak chicken burgers); print "之前:@foods"; # 对此数组进行排序 @foods = sort(@foods); print "之后:@foods";输出这将产生以下结果:之前:pizza steak chicken burgers 之后:burgers chicken pizza steak请注意,排序是基于... 阅读更多
8K+ 次查看
我们可以使用 Perl 中的 join() 函数重新连接数组元素并形成一个长标量字符串。此函数具有以下语法:语法join EXPR, LIST此函数将 LIST 的各个字符串连接成一个字符串,字段之间用 EXPR 的值分隔,并返回该字符串。以下是示例:示例 实时演示#!/usr/bin/perl # 定义字符串 $var_string = "Rain-Drops-On-Roses-And-Whiskers-On-Kittens"; $var_names = "Larry, David, Roger, Ken, Michael, Tom"; # 将上述字符串转换为数组。 @string = split('-', $var_string); @names = split(', ', $var_names); $string1 = join( '-', @string ); $string2 = join( ', ', @names ... 阅读更多