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

原文地址:https://www.cnblogs.com/qiyuexin/p/8824381.html

时间: 2024-10-24 23:19:00

Perl 数组应用详解(push, pop, shift, unshift)的相关文章

js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScript使用push方法添加一个元素到数组末 JavaScript数组函数unshift、shift、pop、push使用

push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( item1 [,items... ] )参数 参数 描述item1 任意类型添加到当前数组末尾处的元素.items 可选参数/任意类型要添加到当前数组末尾处的其他项,可以有多个.注意:如果添加的元素类型为数组类型(Array),仍然会被当作一个元素看待,只是这个元素是数组类型而已.如果要合并两个数组,请使

js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( item1 [,items... ] )参数 参数 描述item1 任意类型添加到当前数组末尾处的元素.items 可选参数/任意类型要添加到当前数组末尾处的其他项,可以有多个.注意:如果添加的元素类型为数组类型(Array),仍然会被当作一个元素看待,只是这个元素是数组类型而已.如果要合并两个数组,请使

Vue push() pop() shift() unshift() splice() sort() reverse() ...

Vue 变异方法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. pop() 方法用于删除并返回数组的最后一个元素. shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值. unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度. splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. sort() 方法用于对数组的元素进行排序. reverse() 方法用于颠倒数组中元素的顺序. 替换数组 filter() 方法创

js数组的操作push,pop,shift,unshift

push(args)可以每次压入多个元素,并返回更新后的数组长度. var oldArr=[1,2,3]; alert(oldArr.push(4,[5,6]))–>5(这里只会将[5,6]当做一个元素来计算,返回更新后的数组长度5) 此时oldArr–>[1,2,3,4,[5,6]] pop()函数每次只会弹出最后一个结尾的元素,并返回弹出的元素,如果是对空组数调用pop()则返回undefined. alert(oldArr.pop())–>[5,6](这里弹出最后一个元素[5,6]

Js数组的操作push,pop,shift,unshift等方法详细介绍

js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首 先来讲一下push和pop方法,这两个方法只会对数组从尾部进行压入或弹出,而且是在原数组进行操作,任何的改动都是会影响到操作的数组. push(args)可以每次压入多个元素,并返回更新后的数组长度.pop()函数每次只会弹出最后一个结尾的元素,并返回弹出的元素,如果是对空组数 调用pop()则返回undefined. 如果参数是数组则是将整个数组当做一

JavaScript数组方法详解

JavaScript数组方法详解 JavaScript中数组的方法种类众多,在ES3-ES7不同版本时期都有新方法:并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中原型上的方法,本文举例介绍了从ES3到ES7几乎所有的数组方法.这大概是最全的数组方法详解了.希望读者能从中有所收获. 一.各版本数组方法一览表 数组方法名 对应版本 功能 原数组是否改变 pop() ES3- 删除最后一位,并返回删除的数据 是 push() ES3- 在最后一位新增一或多个数据,

perl readdir函数详解 获取目录下文件

perl readdir函数详解 2013年12月30日  Perl基础  共 763字 字号 小 中 大  暂无评论  阅读 4,384 次 readdir函数从一个用 opendir 打开的目录句柄读取目录记录也就是文件名.用法如下: readdir DIRHANDLE 在标量环境中,readdir函数返回下一个目录记录,否则,它返回undef.在列表环境中,它返回在该目录中所有剩下的记录,如果剩下没有记录了,那么这个返回可能是一个空列表.比如: opendir(THISDIR, ".&qu

指针数组与数组指针详解

转自:https://blog.csdn.net/men_wen/article/details/52694069 指针数组与数组指针详解 1.什么是指针数组和数组指针? 指针数组:指针数组可以说成是"指针的数组",首先这个变量是一个数组,其次,"指针"修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节. 数组指针:数组指针可以说成是"数组的指针",首先这个变量是一个指针,其次,"数组"修饰这

最新java数组的详解

java中HashMap详解 http://alex09.iteye.com/blog/539545 总结: 1.就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java 对象放入数组中,只是把对象的引用放入数组中,每个数组元素都是一个引用变量. 2.HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置. 3.HashMap 底层采用一个 Entry[] 数组来保存所有的 key-value 对,当需要存储一个 Entry 对象时,会根据 Has