Perl中的数组元素起始引用序号为0,@array的第一个元素为$array[0],依次递增,最后一个元素为$array[-1]或者$#array。如果要删除一个数组中已有的元素,可以用以下几个函数来实现。

1.函数名 grep
调用语法 @foundlist = grep (pattern, @searchlist);
解说 与同名的UNIX查找工具类似,grep函数在列表中抽取与指定模式匹配的元素,参      数pattern为欲查找的模式,返回值是匹配元素的列表。
例子 @list = ("This", "is", "a", "test");
     @foundlist = grep(/^[tT]/, @list);
结果 @foundlist = ("This", "test");

2.函数名 map
调用语法 @resultlist = map (expr, @list);
解说 此函数在Perl5中定义,可以把列表中的各个元素作为表达式expr的操作数进行运      算,其本身不改变,结果作为返回值。在表达式expr中,系统变量$_代表各个元      素。
例子 1、@list = (100, 200, 300);
        @results = map ($_+1, @list);
     2、@results = map (&mysub($_), @list);   #这里没太看明白
结果 1、(101, 201, 301)
     2、无

3.函数名 splice
调用语法 @retval = splice (@array, slipelements, length, @newlist);
解说 拼接函数可以向列表(数组)中间插入元素、删除子列表或替换子列表。参数       skipelements是拼接前跳过的元素数目,length是被替换的元素数,newlist是        将要拼接进来的列表。当newlist的长度大于length时,后面的元素自动后移,反      之则向前缩进。因此,当length=0 时,就相当于向列表中插入元素;而形如语句
     splice (@array, -1, 0, "Hello"),则向数组末尾添加元素"Hello"。而当         newlist为空时就相当于删除子列表,这时,如果length为空,就从第               skipelements个元素后全部删除;而删除最后一个元素则为:splice (@array,        -1),这种情况下,返回值为被删去的元素列表。

例子 @array = qw/a b c d e f g/;

@newlist = qw/aa bb cc dd/;

@retval = splice (@array, 3, 2, @newlist);

结果 @array = qw/a b c aa bb cc dd f g/;

@retval = qw/d e/;

4.函数名 delete

调用语法 delete $array[index];

解说 从数组中删除指定索引的元素,index的值是从0开始,当index大于数组长度时,函数delete      对数组没影响;delete删除元素后, index后面的元素并不会主动往前移动,该元素删除     后,在array还留有一个undef的元素,显然删除得不够干净。

例子 @fruits=("apple","banana","berry","orange");

print "1:@fruits"."\n";

delete $fruits[1];

print "2:@fruits"."\n";

print "3:$fruits[1]"."\n";

delete $fruits[5];

print "4:@fruits"."\n";

$size=@fruits;

print "5:".$size;

结果 1:apple banana berry orange

2:apple  berry orange

3:

4:apple  berry orange

5:4

Perl删除数组中元素的多种方法的更多相关文章

  1. Js删除数组重复元素的多种方法

    js对数组元素去重有很多种处理的方法,本篇文章中为网络资源整理,当然每个方法我都去实现了:写下来的目的是希望自己活学活用,下次遇到问题后方便解决. 第一种 function oSort(arr){ v ...

  2. js删除数组中元素的方法

    一.清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 二.删 ...

  3. JS实现循环删除数组中元素的方法介绍

    这篇文章主要给大家介绍了关于Javascript循环删除数组中元素的几种方法,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 本文主要跟大家分享了 ...

  4. js删除数组中元素 delete 和splice的区别

    例如我有一个数组: var array = ["aa","dd","cc","aa"] ,我想删除这个数组的“dd”元素 ...

  5. delete 和 splice 删除数组中元素的区别

    delete 和 splice 删除数组中元素的区别 ` var arr1 = ["a","b","c","d"]; d ...

  6. (实用篇)PHP中unset,array_splice删除数组中元素的区别

    php中删除数组元素是非常的简单的,但有时删除数组需要对索引进行一些排序要求我们会使用到相关的函数,这里我们来介绍使用unset,array_splice删除数组中的元素区别吧 如果要在某个数组中删除 ...

  7. PHP中unset,array_splice删除数组中元素的区别

    php中删除数组元素是非常的简单的,但有时删除数组需要对索引进行一些排序要求我们会使用到相关的函数,这里我们来介绍使用unset,array_splice删除数组中的元素区别吧 如果要在某个数组中删除 ...

  8. Javascript循环删除数组中元素的几种方法示例

    发现问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求.按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可.但是实际情况往往不会像预想的那样顺利运 ...

  9. [Perl] 删除数组中重复元素

    写一个小程序时候,需要去除一个数组中的重复元素,搜索了一下,找到的代码主要是两种,一种是使用grep函数,一种是转换为hash表,代码分别如下: 使用grep函数代码片段:代码: my @array ...

随机推荐

  1. (AS3)关于arguments

    一.官方说明 点击访问 二.使用心得 arguments包含了当前执行方法的参数,注意,不包含默认参数! arguments可以全局访问,可以在任何方法里访问,除此之外,在定义变量的时候或者初始化的时 ...

  2. 使用Git进行代码管理的心得

    使用GitHub进行代码托管的方法 我是直接下载 Github for Windows ,这个软件自带一个 Github 客户端 和一个 Git shell,其中Github是图形化界面,对初学者来说 ...

  3. iOS基础篇(十五)——UIScrollView的基本用法

    滚动视图(UIScrollView)通常用于显示内容尺寸大于屏幕尺寸的视图. 一.基本属性 1.CGSize contentSize :设置UIScrollView的滚动范围 2.CGPoint co ...

  4. oracle中存储过程中调用存储过程

    存储过程中调用存储过程 create or replace package body PF_Role_Pack is procedure sp_GetPage_Role(pageSize_ in nu ...

  5. pycharm的快捷方式

    PyCharm3.0默认快捷键(翻译的)1.编辑(Editing)Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift ...

  6. iOS 视频直播

    ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...

  7. Centos上的安装openoffice+unoconv+swftools (转)

    ############################## #    swftools的安装     # ############################## 1.安装所需的库和组件 yum ...

  8. 对比学习UIKit和AppKit -- ViewController

    在iOS中ViewController的基类是UIViewController:Mac中ViewController的基类是NSViewController. Mac中ViewController父类 ...

  9. iOS 动画 旋转 移动简单代码

    #import "ViewController.h" @interface ViewController () { UIImageView *imgView; BOOL flag; ...

  10. MYSQL数据表操作语句

    1.查看某数据库中的表 SHOW [FULL] TABLES [FROM db_name] [LIKE 'pattern'] SHOW TABLES列举了给定数据库中的非TEMPORARY表.也可以使 ...