b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Perl数组

电脑杂谈  发布时间:2020-04-27 23:24:24  来源:网络整理

perl数组_perl 数组 长度_perl 数组 长度

Perl数组是一个存储标量值的列表变量. 变量可以是不同的类型.

数组变量以@开头. 要访问数组元素,请使用$ +变量名+ [索引值]的格式. 示例如下:

 
@hits = (25, 30, 40);             
@names = ("google", "runoob", "taobao");
 
print "\$hits[0] = $hits[0]\n";
print "\$hits[1] = $hits[1]\n";
print "\$hits[2] = $hits[2]\n";
print "\$names[0] = $names[0]\n";
print "\$names[1] = $names[1]\n";
print "\$names[2] = $names[2]\n";

程序中的$符号用\进行转义,以使其按原样输出.

执行上述过程,输出结果为:

$hits[0] = 25
$hits[1] = 30
$hits[2] = 40
$names[0] = google
$names[1] = runoob
$names[2] = taobao

数组变量以@符号开头,并将元素放在括号中. 您还可以定义以qw开头的数组.

@array = (1, 2, 'Hello');
@array = qw/这是 一个 数组/;

第二个数组使用qw //运算符,该运算符返回包含由空格分隔的数组元素的字符串列表. 当然,您也可以使用多行来定义数组:

@days = qw/google
taobao
...
runoob/;

您还可以通过索引为数组分配值,如下所示:

$array[0] = 'Monday';
...
$array[6] = 'Sunday';

使用$ +变量名+ [索引值]格式读取数组元素,示例如下:

@sites = qw/google taobao runoob/;
 
print "$sites[0]\n";
print "$sites[1]\n";
print "$sites[2]\n";
print "$sites[-1]\n";    # 负数,反向读取

执行上述过程,输出结果为:

google
taobao
runoob
runoob

数组索引值从0开始,即0是第一个元素,1是第二个元素,依此类推.

以相反的方向读取负数,-1是第一个元素,-2是第二个元素

Perl提供了可以按顺序输出的数组格式,格式为起始值+ .. +结束值perl 数组 长度,示例如下:

perl 数组 长度_perl数组_perl 数组 长度

#!/usr/bin/perl
 
@var_10 = (1..10);
@var_20 = (10..20);
@var_abc = (a..z);
 
print "@var_10\n";   # 输出 1 到 10
print "@var_20\n";   # 输出 10 到 20
print "@var_abc\n";  # 输出 a 到 z

执行上述过程,输出结果为:

1 2 3 4 5 6 7 8 9 10
10 11 12 13 14 15 16 17 18 19 20
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

数组的大小由数组中的标量上下文确定. :

@array = (1,2,3);
print "数组大小: ",标量 @array,"\n";

数组的长度返回数组的物理大小,而不是元素的数量. 我们可以看到以下示例:

#!/uer/bin/perl
 
@array = (1,2,3);
$array[50] = 4;
 
$size = @array;
$max_index = $#array;
 
print "数组大小:  $size\n";
print "最大索引: $max_index\n";

执行上述过程,输出结果为:

数组大小:  51
最大索引: 50

从输出中可以看到,只有四个数组元素,但是数组大小为51.

Perl提供了一些有用的功能来添加和删除数组元素.

如果您以前没有编程经验,则可以询问什么是函数. 实际上,我们之前使用的打印是输出功能.

下表列出了数组中常用的操作函数:

序列号类型和说明

按@ ARRAY,LIST将列表的值放在数组的末尾

pop @ARRAY弹出数组的最后一个值并返回它

shift @ARRAY弹出数组的第一个值并返回它. 数组的索引值也顺序减小1.

unshift @ ARRAY,LIST将列表放在数组的前面,并返回新数组中的元素数.

#!/usr/bin/perl
 
# 创建一个简单是数组
@sites = ("google","runoob","taobao");
print "1. \@sites  = @sites\n";
 
# 在数组结尾添加一个元素
push(@sites, "baidu");
print "2. \@sites  = @sites\n";
 
# 在数组开头添加一个元素
unshift(@sites, "weibo");
print "3. \@sites  = @sites\n";
 
# 删除数组末尾的元素
pop(@sites);
print "4. \@sites  = @sites\n";
 
# 移除数组开头的元素
shift(@sites);
print "5. \@sites  = @sites\n";

perl 数组 长度_perl 数组 长度_perl数组

执行上述过程,输出结果为:

我们可以剪切一个数组并在剪切后返回新数组:

#!/usr/bin/perl
 
@sites = qw/google taobao runoob weibo qq facebook 网易/;
 
@sites2 = @sites[3,4,5];
 
print "@sites2\n";

执行上述过程,输出结果为:

weibo qq facebook

数组索引需要指定一个有效的索引值,该值可以是一个负数后可以是正数,每个索引值都用逗号分隔.

如果是连续索引,则可以使用..表示指定范围:

#!/usr/bin/perl
 
@sites = qw/google taobao runoob weibo qq facebook 网易/;
 
@sites2 = @sites[3..5];
 
print "@sites2\n";

执行上述过程,输出结果为:

weibo qq facebook

Perl中的数组元素替换使用splice()函数. 语法如下:

splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]

参数说明:

以下示例从第6个元素开始替换数组中的5个元素:

#!/usr/bin/perl
 
@nums = (1..20);
print "替换前 - @nums\n";
 
splice(@nums, 5, 5, 21..25); 
print "替换后 - @nums\n";

执行上述过程,输出结果为:

替换前 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
替换后 - 1 2 3 4 5 21 22 23 24 25 11 12 13 14 15 16 17 18 19 20

Perl使用split()函数将字符串转换为数组. 语法如下:

perl 数组 长度_perl数组_perl 数组 长度

split [ PATTERN [ , EXPR [ , LIMIT ] ] ]

参数说明:

#!/usr/bin/perl
 
# 定义字符串
$var_test = "runoob";
$var_string = "www-runoob-com";
$var_names = "google,taobao,runoob,weibo";
 
# 字符串转为数组
@test = split('', $var_test);
@string = split('-', $var_string);
@names  = split(',', $var_names);
 
print "$test[3]\n";  # 输出 o
print "$string[2]\n";  # 输出 com
print "$names[3]\n";   # 输出 weibo

执行上述过程,输出结果为:

o
com
weibo

Perl使用join()函数将数组转换为字符串. 语法如下:

join EXPR, LIST

参数说明:

#!/usr/bin/perl
 
# 定义字符串
$var_string = "www-runoob-com";
$var_names = "google,taobao,runoob,weibo";
 
# 字符串转为数组
@string = split('-', $var_string);
@names  = split(',', $var_names);
 
 
# 数组转为字符串
$string1 = join( '-', @string );
$string2 = join( ',', @names );
 
print "$string1\n";
print "$string2\n";

执行上述过程,输出结果为:

www-runoob-com
google,taobao,runoob,weibo

Perl中的数组排序使用sort()函数,语法如下:

sort [ SUBROUTINE ] LIST

参数说明:

#!/usr/bin/perl
 
# 定义数组
@sites = qw(google taobao runoob facebook);
print "排序前: @sites\n";
 
# 对数组进行排序
@sites = sort(@sites);
print "排序后: @sites\n";

执行上述过程,输出结果为:

排序前: google taobao runoob facebook
排序后: facebook google runoob taobao

注意: 数组排序基于ASCII数值. 因此,当我们对数组进行排序时,最好在排序之前将每个元素都转换为小写.

特殊变量

perl 数组 长度_perl 数组 长度_perl数组

[** 表示数组的第一索引值,一般都为 0 ,如果我们将 **

[当设置为1时,数组的第一个索引值为1,第二个索引为2perl 数组 长度,依此类推. 示例如下:

#!/usr/bin/perl
 
# 定义数组
@sites = qw(google taobao runoob facebook);
print "网站: @sites\n";
 
# 设置数组的第一个索引为 1
$[ = 1;
 
print "\@sites[1]: $sites[1]\n";
print "\@sites[2]: $sites[2]\n";

执行上述过程,输出结果为:

网站: google taobao runoob facebook
@sites[1]: google
@sites[2]: taobao

通常,我们不建议使用特殊变量$ [,在新版本的Perl中已弃用.

数组的元素用逗号分隔. 我们还可以使用逗号来合并数组,如下所示:

#!/usr/bin/perl
 
@numbers = (1,3,(4,5,6));
 
print "numbers = @numbers\n";

执行上述过程,输出结果为:

numbers = 1 3 4 5 6

您还可以在数组中嵌入多个数组,然后将它们合并到主数组中:

#!/usr/bin/perl
 
@odd = (1,3,5);
@even = (2, 4, 6);
 
@numbers = (@odd, @even);
 
print "numbers = @numbers\n";

执行上述过程,输出结果为:

numbers = 1 3 5 2 4 6

列表可以用作数组. 在列表后指定索引值以读取指定的元素,如下所示:

#!/usr/bin/perl
 
$var = (5,4,3,2,1)[4];
 
print "var 的值为 = $var\n"

执行上述过程,输出结果为:

var 的值为 = 1

类似地,我们可以在数组中使用..来读取指定范围的元素:

#!/usr/bin/perl
 
@list = (5,4,3,2,1)[1..3];
 
print "list 的值 = @list\n";

执行上述过程,输出结果为:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-191286-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...