perl 语言(数组)

perl 数组是一个储存多个标量的列表。

数组的赋值和读取

Perl 数组的读取是通过 $list[index] 来实现的

如:

#!/usr/bin/perl
@animals = ('cat','fish','dog','ant');
$str = @animals[2];
# dog
print $str."\n";
# dog
print $animals[2];

给数组赋值可以有以下三种方法:

#!/usr/bin/perl
@array1 = qw/12 23 34/;
@array2 = (12,23,34);
@array3[0] = 12;
@array3[1] = 23;
@array3[2] = 34;
# 12 23 34  12 23 34    12 23 34
print "@array1\t@array2\t@array3\n";
# 3    3    3
print $array1."\t".$array2."\t".$array3;

这里,数组可以通过qw/…/ , 直接赋值和索引赋值来实现,但是注意的是,如果在对数组的引用中出现了“." 这种表示字符串拼接的符号,数组的内容就会转换成数组的个数。

连续输入数组

#!usr/bin/perl
@num = (1..9);
@alphabet = (a..z);
# Output number
foreach $number (@num)
{print $number."\t";
}
print "\n";
$alphabet = join "\t", @alphabet;
print $alphabet;

数组的基本函数

1. push

将列表数值放在数组的末尾。
如果我想去餐厅吃饭, 要排号就可以用push来表达

#!usr/bin/perl
# restaurant number
# there already have been 24 customers.
@queue = (1..24);
# push my information into program
push @queue, "Monica";
# get my number
$number = @queque
print "$number\n";

2. pop

删除数组最后一个值
pop @material
如果需要从尾部去掉一个成分,则可以写成:

#!/usr/bin/perl
@names = ("Monica","Fermina","Ariza","Jane");
foreach $name (@names)
{if $name not eq "Fermina"{pop @names;}
}

3. shift

弹出数组第一个值,并返回它,数组的索引值也依次减一,即移除数组第一个值

#!/usr/bin/perl
# please input your codes
@a = ("Monica","Fenima","Ariza","Trump","Carlo");
shift @a;
print @a;

4. unshift

在开头添加一个元素

#!/usr/bin/perl
@a = ("Monica","Fenima","Ariza","Trump","Carlo");
unshift @a, "Ben";
$a = join "\t", @a;
print $a;

字符串转数组

1 split
$name = (“Monica Femina Elan Trump”);

#!/usr/bin/perl
$name_list = "Monica Fermina Ariza Elan Trump";
# split this string by " "
@names = split " ",$name_list;
"""
output results
Monica
Fermina
Ariza
Elan
Trump
"""
foreach $name (@names)
{print $name;print "\n";
}

数组转字符串

数组变成字符串,意义上就是将各个字符连接起来(join),所以要用到join函数
如下:

#!usr/bin/perl
#please input your codes
# initialization
@country = ("China","America","France","Australia");
# transform them into a list
$CountryName = join " - - ", @country;
# Output: Monica-Fermina-Grace-Paris

其中, join 也可以写成 join(" ",@list) 的形式。但是与我而言。第一种表示比较简单。

截断数组

想从数组中得到特定位置的元素,可以这么表达:

#!/usr/bin/perl
@countries = qw/China America France Australia/;
@country = @countries[2..4];
# 3
print @country."\n";
# France Australia
print "@country/n";
# China America France Australia
print @countries

替换数组元素 (splice)

splice @array, OFFSET, LENGTH, LIST

例子:Jerry的成绩单打错了,需要调整。

#!/usr/bin/perl
@gradelist = (95,96,70,88,73,94,87,92,89);
splice @gradelist, 2, 3, (81,79,80);
# Jerry's grade list is 95 96  81  79  80  94  87  92  89
print "Jerry's grade list is ", join "\t", @gradelist,"\n";

参考文献

https://www.runoob.com/perl/perl-arrays.html

perl 语言(数组)相关推荐

  1. python调用golang 数组_Go 语言数组复制

    Go 语言数组复制 Golang编程语言中的数组与其他编程语言非常相似.在程序中,有时我们需要存储一组相同类型的数据,例如学生评分列表.这种类型的集合使用数组存储在程序中.数组是固定长度的序列,用于将 ...

  2. perl语言编程 第四版_被称作“胶水语言”的PERL,在芯片设计和验证中可以这样使用...

    最近在做一个验证环境的自动化生成脚本,在写的过程中,随着对PERL认知程度的增加,越感到它的强大之处,今天我们来谈一谈这门语言. PERL(Practical Extration and Report ...

  3. perl语言数据类型

    1.标量 标量是 Perl 语言中最简单的一种数据类型.这种数据类型的变量可以是数字,字符串,浮点数,不作严格的区分.在使用时在变量的名字前面加上一个 $,表示是标量.例如: $myfirst=123 ...

  4. Perl语言学习总结

    Perl ------practical extraction and report language <一>.实用性摘录与报表语言: <二>.常用到的与perl有关的网站:h ...

  5. perl 语言(变量类型)

    perl之变量类型 perl 语言将变量类型分为标量,数组和哈希,perl在定义变量时会先加入一些符号来代表他们的类型.标量用$, 数组用@,哈希用% #!/usr/bin/perl $age = 2 ...

  6. Perl语言面向对象入门

    阅读原文请点击 摘要: 通过一些简单代码来展示一下Perl的面向对象编程,可以帮助新手快速上手. 因为项目原因,接触了一门新的语言----Perl.初识之时,觉得它既像bash shell,又像C语言 ...

  7. 【学习笔记】山东大学生物信息学——Perl 语言基础入门+高级

    文章目录 8.3 Perl 语言基础入门 8.3.1 第一个 Perl 8.3.2 Perl 的基本规则 8.3.3 字符串常用函数 8.3.4 数组常用函数 8.4 Perl 语言基础高级 8.4. ...

  8. 一文了解Perl语言

    我在公众号发过很多编程语言的学习笔记,但是一直没有发Perl语言的编程教程.我大学的时候,学过一段时间的Perl语言,所以和Perl也有点缘分.这次去北京参加培训时发现他们教的Perl,所以接着机会发 ...

  9. perl语言与算法的关系

    Perl语言是一种高级动态编程语言,它是一种通用的脚本语言,常用于Web开发.系统管理.网络编程等领域.Perl语言由Larry Wall于1987年开发,它的设计理念是"简单.实用.灵活. ...

  10. perl语言编程 第四版_2020年,5 种 将死的编程语言!

    来源 | 码农网译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"piecemea ...

最新文章

  1. Docker折腾手记-linux下安装
  2. Android-BLE蓝牙原理
  3. logging.Formatter 日期格式
  4. (三)数字判断大小语句
  5. leetcode851. 喧闹和富有(dfs)
  6. Linux无法连接远程仓库,ssh无法连接到远端Ubuntu的解决方法
  7. 从芯开始,解读华为云的全栈全场景与全球化布局
  8. 安卓手机安装并使用自动化应用Tasker
  9. R语言中GCC编译的问题(续)
  10. CSS实现DIV悬浮
  11. dubbo3.0源码编译问题
  12. 模糊算法 matlab,几种模糊控制算法的MATLAB仿真.pdf
  13. 微信小程序可以申请软件著作权吗?亲测可以的
  14. 下载知乎等网站视频小技巧
  15. 多商户商城系统功能拆解14讲-平台端会员等级
  16. 5千字长文:KeePass完全入门指南(附已经配置好的版本)
  17. html中伪类选择符,【CSS选择符】伪类和伪元素
  18. Android获取设备号SSAID (Android ID) 和 IMEI
  19. 英语发音规则---Y字母
  20. 「ReactNaitve」对hooks最佳实践的探索

热门文章

  1. [系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析(上)病毒初始化
  2. 带领初学者学习 SQL 数据库编程视频教程(28 个视频)
  3. 基于SSM框架之众筹网站项目
  4. GoC编程(C++画图) 视频和资料集 -- 2022.07.26
  5. Linux视频编解码库,Ubuntu 18.04 FFMPEG最新版本安装总结
  6. Java单元测试框架 - JUnit
  7. java反编译jar包
  8. C语言入门1(devC的安装)
  9. JAVA面试个人简历模板 ——(2022年最新版)
  10. QT编程编程入门系列文章之一——QT编程简介