Perl语言之数组

  Perl数组可以存储多个标量,并且标量数据类型可以不同。
  数组变量以@开头。访问与定义格式如下:

#! /usr/bin/perl
@arr=("asdfasd",2,23.56,'a');
print "输出所有:@arr\n";
print "arr[0]=$arr[0]\n"; #输出指定下标
print "数组大小:".scalar @arr."\n";
$arr[0]=v97.98.99; #v字符串赋值
print "输出所有:@arr\n";
$arr[6]=89;#指定下标赋值
print "输出所有:@arr\n";

1.以qw开头定义数组

#! /usr/bin/perl
@arr=qw / 这是一个数组 123 456 890 "数组创建示例"/;
print "所有成员:@arr\n";
print "成员个数:".scalar @arr ."\n";
print "第一个成员:$arr[0]\n";
print "最后一个成员:$arr[-1]\n"; #-1表示最后一个成员

$size=$#arr;#返回最大索引下标
print "size=$size\n";
print "arr[0]成员长度:".length $arr[0]; #一个中文3个字节
print "\n";
print "arr[1]成员长度:".length $arr[1];
print "\n";

  运行示例:

[wbyq@wbyq 0709]$ ./1.pl 
所有成员:这是一个数组 123 456 890 "数组创建示例"
成员个数:5
第一个成员:这是一个数组
最后一个成员:"数组创建示例"
size=4
arr[0]成员长度:18
arr[1]成员长度:3

2 数组序列号

#! /usr/bin/perl
@arr=(1..10);
print "数组成员个数:".scalar @arr ."\n";
print "所有成员:@arr\n";
print "最大访问下标:$#arr\n";
@arr=(a..z);
print "数组成员个数:".scalar @arr ."\n";
print "所有成员:@arr\n";
print "最大访问下标:$#arr\n";
$size=@arr;
print "数组成员个数:$size\n"

  运行效果:

[wbyq@wbyq 0709]$ ./1.pl 
数组成员个数:10
所有成员:1 2 3 4 5 6 7 8 9 10
最大访问下标:9
数组成员个数:26
所有成员: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
最大访问下标:25
数组成员个数:26

3.添加和删除数组

  Perl语言提供有从末尾插入成员、从头插入、从头取数据、从末尾取数据。
在这里插入图片描述

#! /usr/bin/perl
@arr=(1..10);
print "[line:".__LINE__."]数组成员个数:".scalar @arr ."\n";
$size=push (@arr,a,b,c,d);#在数组末尾加入a,b,c,d,并且输出成员个数
print "[line:".__LINE__."] size=$size\n";
print "[line:".__LINE__."]数组成员个数:".scalar @arr ."\n";
@arr2=qw\"12" "34" "56"\;
push (@arr,@arr2);#将数组arr2添加到arr末尾
print "[line:".__LINE__."]数组成员个数:".scalar @arr ."\n";
print "[line:".__LINE__."]输出所有成员:@arr\n";
$data=pop(@arr);#从末尾取元素,并且成员个数-1
print "[line:".__LINE__."]数组成员个数:".scalar @arr ."\n";
print "[line:".__LINE__."]data=$data\n";
$data=shift(@arr);#从首位置取元素,并且成员个数-1
print "[line:".__LINE__."]data=$data\n";
print "[line:".__LINE__."]数组成员个数:".scalar @arr ."\n";
$size=unshift(@arr,@arr2);#从首位置插入元素,并返回元素个数
print "[line:".__LINE__."]size=$size\n";
print "[line:".__LINE__."]数组成员个数:".scalar @arr ."\n";
print "[line:".__LINE__."]输出所有成员:@arr\n";

  运行示例:

[wbyq@wbyq 0709]$ ./1.pl 
[line:3]数组成员个数:10
[line:5] size=14
[line:6]数组成员个数:14
[line:9]数组成员个数:17
[line:10]输出所有成员:1 2 3 4 5 6 7 8 9 10 a b c d "12" "34" "56"
[line:12]数组成员个数:16
[line:13]data="56"
[line:15]data=1
[line:16]数组成员个数:15
[line:18]size=18
[line:19]数组成员个数:18
[line:20]输出所有成员:"12" "34" "56" 2 3 4 5 6 7 8 9 10 a b c d "12" "34"

4.数组成员截取

  Perl中可以获取一个数组中的指定成员,再组合成一个新的数组。
  使用示例:@buff=@arr[索引值];
  数组索引需要指定有效的索引值,可以是正数后负数,每个索引值使用逗号隔开。
  如果是连续的索引,可以使用 … 来表示指定范围。

  示例:

#! /usr/bin/perl
@arr=(11,22,3,44,55);#定义数组
@arr2=qw/hello wbyq welcome/;#qw方式定义
@arr3=(a..d);#连续序号定义
printf("[line:".__LINE__ ."] arr所有成员:@arr\n");
printf("[line:".__LINE__ ."] arr成员个数:".scalar @arr ."\n");
$count=push(@arr,@arr2);#将arr2从尾部插入
printf("[line:".__LINE__ ."] arr所有成员:@arr\n");
printf("[line:".__LINE__ ."] arr成员个数:$count\n");
$count=unshift(@arr,@arr3);#arr3从头部插入
printf("[line:".__LINE__ ."] arr所有成员:@arr\n");
printf("[line:".__LINE__ ."] arr成员个数:$count\n");
@buff=@arr[0,1,5];#获取arr[0]、arr[1]、arr[5]
print "buff成员个数:".scalar @buff ."\n";
print "buff所有成员:@buff\n";
@buff=@arr[-5..-1];#获取最后五个成员
print "buff成员个数:".scalar @buff ."\n";
print "buff所有成员:@buff\n";

  运行效果:

[wbyq@wbyq 0709]$ ./1.pl 
[line:5] arr所有成员:11 22 3 44 55
[line:6] arr成员个数:5
[line:8] arr所有成员:11 22 3 44 55 hello wbyq welcome
[line:9] arr成员个数:8
[line:11] arr所有成员:a b c d 11 22 3 44 55 hello wbyq welcome
[line:12] arr成员个数:12
buff成员个数:3
buff所有成员:a b 22
buff成员个数:5
buff所有成员:44 55 hello wbyq welcome

5.数组元素替换splice

  Perl中可以使用splice函数实现数组元素替换。
  splice使用语法如下:
  spice(@arr [起始位置,替换个数,列表]);
  示例1:spice(@arr); #清空数组
  示例2:spice(@arr,0,2,20…25);#表示从下标0开始,替换两个成员,多余成员则插入到数组

#! /usr/bin/perl
@arr=("hello","wbyq","welcom");
print "数组元素:@arr\n";
splice(@arr);#清空数组
print "数组元素:@arr\n";
@arr=("hello","wbyq","welcom");
print "数组元素:@arr\n";
splice(@arr,0,5,(1,2,3,4,5));#从下标0,替换5个成员
print "数组元素:@arr\n";

@arr=("hello","wbyq","welcom");
print "数组元素:@arr\n";
splice(@arr,0,2,(a..f));#从下标0,替换2个成员,多余成员则插入到数组
print "数组元素:@arr\n";

  运行效果:

[wbyq@wbyq 0709]$ ./1.pl 
数组元素:hello wbyq welcom
数组元素:
数组元素:hello wbyq welcom
数组元素:1 2 3 4 5
数组元素:hello wbyq welcom
数组元素:a b c d e f welcom

相关推荐

  1. Perl语言标量

    2024-07-14 16:18:04       18 阅读
  2. PerlPerl 语言入门

    2024-07-14 16:18:04       18 阅读
  3. Perl 语言开发(七):哈希和关联数组

    2024-07-14 16:18:04       23 阅读
  4. Perl语言入门学习

    2024-07-14 16:18:04       25 阅读
  5. Perl语言入门学习

    2024-07-14 16:18:04       29 阅读
  6. Perl语言介绍

    2024-07-14 16:18:04       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 16:18:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 16:18:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 16:18:04       57 阅读
  4. Python语言-面向对象

    2024-07-14 16:18:04       68 阅读

热门阅读

  1. Python:Scrapyd设置服务器账号密码basic authentication

    2024-07-14 16:18:04       23 阅读
  2. Python爬虫-爬取三国演义文本数据-bs4

    2024-07-14 16:18:04       22 阅读
  3. CSS 单位中 px、em 和 rem 的区别?

    2024-07-14 16:18:04       19 阅读
  4. LeetCode 第406场周赛个人题解

    2024-07-14 16:18:04       17 阅读
  5. 刷题2路2线

    2024-07-14 16:18:04       18 阅读
  6. 代码随想录:图论_01基础

    2024-07-14 16:18:04       23 阅读
  7. nng协议分析之互斥锁pthread_mutexattr_settype函数

    2024-07-14 16:18:04       21 阅读
  8. 34. AdaGrad算法

    2024-07-14 16:18:04       24 阅读
  9. jQuery标签定位方法

    2024-07-14 16:18:04       26 阅读
  10. LruCache、Glide和SmartRefreshLayout使用总结

    2024-07-14 16:18:04       27 阅读
  11. [NeetCode 150] Merge K Sorted Linked Lists

    2024-07-14 16:18:04       26 阅读
  12. AWS S3 基本概念

    2024-07-14 16:18:04       24 阅读
  13. 大型土木工程项目灾害防御规划与风险评估系统

    2024-07-14 16:18:04       21 阅读
  14. MySQL面试题

    2024-07-14 16:18:04       17 阅读
  15. 【QT系列】快速了解QT怎么用

    2024-07-14 16:18:04       26 阅读