Perl 数组应用详解(push, pop, shift, unshift)
Perl的数组操作有四大常用函数:
push:从数组的末尾加入元素。
pop :从数组的末尾取出元素
shift: 从数组的开头取出元素
unshift:从数组的开头加入元素
1、push
#!/usr/bin/perl
use strict;
use warnings;
my @array = ();
for ( my $i = 1 ; $i <= 5 ; ++$i ) {
push @array, $i;
print "@array\n";
}
output:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
2、pop
#!/usr/bin/perl
####<pop>###
use strict;
use warnings;
my @array = ( 1, 2, 3, 4, 5, 6 );
while (@array) {
my $firstTotal = pop(@array);
print "@array\n";
}
output:
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
3、shift
#!/usr/bin/perl
####<shift>###
use strict;
use warnings;
my @array = ( 1, 2, 3, 4, 5, 6 );
while (@array) {
my $firstTotal = shift(@array);
print "@array\n";
}
output:
2 3 4 5 6
3 4 5 6
4 5 6
5 6
6
4、unshift
#!/usr/bin/perl
####<unshift>###
use strict;
use warnings;
my @array = ();
for ( my $i = 1; $i <= 5; ++$i ) {
unshift( @array, $i ); # add $i to front of @array
print "@array\n"; # display current @array
}
output:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
另外,perl的数组还有其它重要函数,如splice、subtr、split、join、sort等:
5、splice 操作数组中间部分的函数:
5.1、向数组中间插入内容
#!/usr/bin/perl
use strict;
use warnings;
my @array = ( 0 .. 6 );
my @array1 = ( 'a' .. 'd' );
my @replaced = splice( @array, 3, 2, @array1 );
print "replaced: @replaced\n",
"with: @array1\n",
"resulting in: @array\n\n";
output:
replaced: 3 4
with: a b c d
resulting in: 0 1 2 a b c d 5 6
5.2、删除数组元素
#!/usr/bin/perl
use strict;
use warnings;
my @array = ( 0 .. 6 );
my @array1 = ( 'a' .. 'd' );
my @replaced = splice( @array, 3, 2 );
print "replaced: @replaced\n",
"resulting in: @array\n\n";
output:
replaced: 3 4
with: a b c d
resulting in: 0 1 2 5 6
删除到末尾
#!/usr/bin/perl
use strict;
use warnings;
my @array = ( 0 .. 6 );
my @array1 = ( 'a' .. 'd' );
my @replaced = splice( @array, 3 );
print "replaced: @replaced\n",
"resulting in: @array\n\n";
output:
replaced: 3 4 5 6
resulting in: 0 1 2
6、join 连接列表中的各个分离的串,生成一个新的串,返回一个标量!
#!/usr/bin/perl
use strict;
use warnings;
my @array = ( 0 .. 6 );
my $replaced = join("\n", @array);
print "$replaced\n",
output:
0
1
2
3
4
5
6
7、split
把字符串进行分割并把分割后的结果放入数组中
perl -le '$p=q(/var/ftp/test);@a=split(/\/ftp\//,$p);print $a[1];'
test
perl -le '$p=q(/var/ftp/test);@a=split(/\/ftp\//,$p);print $a[0];'
/var
8、scalar
统计数组的长度,一般我们不用这个,直接将数组赋值给标量即可。
#!/usr/bin/perl
use strict;
use warnings;
my @array = ( 0 .. 6 );
my $count1 = @array;
my $count2 = scalar @array;
print "$count1\n";
print "$count2\n";
output:
7
7
9、sort
对数组元素进行排序
#!/usr/bin/perl
use strict;
use warnings;
my @array = ( 0 .. 9 );
my @reversed = reverse @array;
print "Original: @array\n";
print "Reversed: @reversed\n\n";
# create an unsorted array of numbers and sort it
my @array2 = ( 100, 23, 9, 75, 5, 10, 2, 50, 7, 96, 1, 40 );
my @sortedLexically = sort @array2;
my @sortedNumerically = sort { $a <=> $b } @array2;
print "Unsorted: @array2\n";
print "Lexically: @sortedLexically\n";
print "Numerically: @sortedNumerically\n";
output:
Original: 0 1 2 3 4 5 6 7 8 9
Reversed: 9 8 7 6 5 4 3 2 1 0
Unsorted: 100 23 9 75 5 10 2 50 7 96 1 40
Lexically: 1 10 100 2 23 40 5 50 7 75 9 96
Numerically: 1 2 5 7 9 10 23 40 50 75 96 100
Perl 数组应用详解(push, pop, shift, unshift)的更多相关文章
- js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip
push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( ite ...
- 数组方法push() pop() shift() unshift() splice() sort() reverse() contact()浅拷贝 slice()原数组拷贝
push() pop() shift() unshift() splice() sort() reverse() 参考资料:https://wangdoc.com/javascript/stdlib/ ...
- Vue push() pop() shift() unshift() splice() sort() reverse() ...
Vue 变异方法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. pop() 方法用于删除并返回数组的最后一个元素. shift() 方法用于把数组的第一个元素从其中删除,并返回 ...
- js push(),pop(),shift(),unshift()
以前没有太在意这些,这几天看<Javascript 设计模式与开发实践>(不得不说这是一本好书) 发现总是会用到这几个函数,可是有什么区别呢?? 简单来说是两套东西(数据结构时老师详细的讲 ...
- js数组方法push pop shift unshift的返回值
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. pop() 方法用于删除并返回数组的最后一个元素. unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度. s ...
- Js数组的操作push,pop,shift,unshift等方法详细介绍
js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首 先来讲一下push和pop方法,这两个方法只会对数组从尾 ...
- js数组的操作push,pop,shift,unshift
push(args)可以每次压入多个元素,并返回更新后的数组长度. var oldArr=[1,2,3]; alert(oldArr.push(4,[5,6]))–>5(这里只会将[5,6]当做 ...
- Js~数组的操作push,pop,shift,unshift
说几个概念: 队列:先进先出堆栈:先进后出 shift:从集合中把第一个元素删除,返回这个元素的值pop:从集合中把最后一个元素删除,返回这个元素的值 unshift:在集合开头添加一个或者多个元素, ...
- js数组方法详解
Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...
随机推荐
- Shiro学习(23)多项目集中权限管理
在做一些企业内部项目时或一些互联网后台时:可能会涉及到集中权限管理,统一进行多项目的权限管理:另外也需要统一的会话管理,即实现单点身份认证和授权控制. 学习本章之前,请务必先学习<第十章 会话管 ...
- AcWing 197. 阶乘分解 (筛法)打卡
给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pipi 和 cici 即可. 输入格式 一个整数N. 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi, ...
- Ubuntu 16.04系统上修改Docker镜像的存储路径 (转)
转自:https://blog.csdn.net/qihongchao/article/details/80651492 dba专门挂了一个硬盘让我放项目(测试环境)因为系统空间比较小,希望把dock ...
- Mac 安装react-native 环境踩坑记
我的工程创建时间是2019.7.11号下午 :首先看一下最后我的工程的package.json各个包的版本: { "name": "MyApp", &quo ...
- ping命令的应用
Ping命令是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要功能是向特定的目的主机发送 ICMP(Iternet Control Message Protocol 因特网报文控制协议) ...
- Django框架(五)—— 虚拟环境搭建
目录 Django虚拟环境搭建 Django虚拟环境搭建 一.为什么要用虚拟环境 公司以前开发的项目是在Django1.5的基础上开发的,先要需要基于Django2.0开发一套项目.这样不能卸载原有版 ...
- Linux中的网络管理——网络配置及命令
Linux网络配置 在Linux中配置IP地址的方法有以下这么几种: 图形界面配置IP地址(操作方式如Windows系统配置IP,但在实际生产中,我们并不建议在我们的服务器上安装Linux的图形界面, ...
- 8.1_springboot2.x之Actuator应用监控
1.监管端点测试 引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...
- 第九篇 数据表设计和保存item到json文件
上节说到Pipeline会拦截item,根据设置的优先级,item会依次经过这些Pipeline,所以可以通过Pipeline来保存文件到json.数据库等等. 下面是自定义json #存储item到 ...
- webpack4 入门配置研究
1. 全局安装 npm install webpack webpack-cli webpack-dev-server -g 1.1)输密文的密码(电脑开机) 1.2)安装成功 2. 输入命令mkdir ...