Perl中怎样从数组中删除某个值

   这篇文章主要介绍了Perl中怎样从数组中删除某个值?本文讲解如何把数组的元素赋值为undef,然后在从数组中删除元素,需要的朋友可以参考下

  我不确定undef是否和从数组中消除值有确切的关系,猜测一下,如果我们将undef视为"空",那么会有一些联系。但通常来说,将某些东西赋值为undef和删除某些东西是不一样的。

  首先来看怎样把数组的元素赋值为undef,之后再了解如何从数组中删除元素。

  从下面的代码开始:

  代码如下:

  use Data::Dumper qw(Dumper);

  my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);

  print Dumper @dwarfs;

  使用Data::Dumper打印时,得到如下输出:

   代码如下:

  $VAR1 = [

  'Doc',

  'Grumpy',

  'Happy',

  'Sleepy',

  'Sneezy',

  'Dopey',

  'Bashful'

  ];

  将元素赋值为undef

  使用undef()函数的返回值:

   代码如下:

  use Data::Dumper qw(Dumper);

  my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);

  $dwarfs[3] = undef;

  print Dumper @dwarfs;

  这些代码会把3号元素(数组中第4个元素)赋值为undef,但是并不改变数组的大小:

  代码如下:

  $VAR1 = [

  'Doc',

  'Grumpy',

  'Happy',

  undef,

  'Sneezy',

  'Dopey',

  'Bashful'

  ];

  直接对数组的某个元素使用undef()函数也会产生相同的结果:

   代码如下:

  use Data::Dumper qw(Dumper);

  my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);

  undef $dwarfs[3];

  print Dumper @dwarfs;

  所以,$dwarfs[3] = undef; 和 undef $dwarfs[3];的作用是一样的,它们都能把值赋成undef。

  使用splice从数组移除元素

  splice函数会从数组中彻底删除元素:

   代码如下:

  use Data::Dumper qw(Dumper);

  my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);

  splice @dwarfs, 3, 1;

  print Dumper @dwarfs;

  $VAR1 = [

  'Doc',

  'Grumpy',

  'Happy',

  'Sneezy',

  'Dopey',

  'Bashful'

  ];

  可以看到,在这个例子中,数组因为我们从数组中间移除了一个元素而缩短了一个单位。

  这也就是怎样从数组中删除一个元素。

时间: 2024-08-18 04:06:38

Perl中怎样从数组中删除某个值的相关文章

降噪-Delphi 2007中如何将数组中的值以音频形式播放出来

问题描述 Delphi 2007中如何将数组中的值以音频形式播放出来 我的程序中首先将两个wav文件分别读入两个数组,然后进行了降噪算法,最后输出为e,e是一个元素个数为二百多万的real型动态数组,我现在想将其以声音形式播放出来,请问需要怎样做?waveout可以实现吗? 多谢各位大神 解决方案 使用Beep函数,它可以自定义频率和时间http://www.feiesoft.com/api/Beep.html

求助) Java中如何获取数组中的有效数据长度

问题描述 Java中如何获取数组中的有效数据长度?请各位大虾指点一二,谢谢!如:bytearr[]=newbyte[100];现在我向arr中输入任意数(-128~127),请问如何知道我已经输入多少个了呢? 解决方案 解决方案二:for循环呗遍历一次就行.解决方案三:使用一个变量如count记录,输入一个就把count加1.解决方案四:遍历吧解决方案五:要是那样存数,你不如用Vector或其它的,那个容易找,解决方案六:遍历是可以,问题是该用什么做基准值呢?看样子只能用动态数组了解决方案七:用

Perl中怎样从数组中删除某个值?_perl

我不确定undef是否和从数组中消除值有确切的关系,猜测一下,如果我们将undef视为"空",那么会有一些联系.但通常来说,将某些东西赋值为undef和删除某些东西是不一样的. 首先来看怎样把数组的元素赋值为undef,之后再了解如何从数组中删除元素. 从下面的代码开始: 复制代码 代码如下: use Data::Dumper qw(Dumper); my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful); print

如何数据库中数据存到数组中

问题描述 请问如何把数据库中的数据存到数组中,试了几种方法总是出错,希望能看一下demo片段 解决方案 1.你把从数据库中获取的list做个for循环,在循环的过程中,每次循环将list中一条数据插入到数组中2.可以使用追加的方式进行:List arr =new ArrayList();for(int i=0;i<list.size;i++){ arr.add(list.get(i));}办法有很多种的,看个人喜好了解决方案二:我给一个.net的代码吧!!分两种情况回答吧!!一如果你查询的记录中

JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法_javascript技巧

今天在学习js中的数组时,遇到的输出一个数组中最大.最小值以及它们的下表,以下是自己的解决方法! <script type="text/javascript"> var arr = [14, 14, 53, 14, 14, 53, 67, 67]; var max = arr[0],min = arr[0]; var maxIndex = []; maxIndex[0] = 0; var minIndex = []; minIndex[0] = 0; var j = 1,

JS 中 inArray 检查数组中是否存在某个值

开发中经常会用到这个一样逻辑,判断一个字符串或者数字是否在数组内,很多程序语言都有这样一样专门的函数,比如经常用的PHP里就有个in_array(),但是js里居然木有,木有你知道吗? 百度也有很多实现的方式,这里就留一种自己常用的! 附上代码: function in_array(stringToSearch, arrayToSearch) {     for (s = 0; s < arrayToSearch.length; s++) {         thisEntry = arrayT

(我没办法了)如何取到jsonStore中的非数组中的值?

问题描述 JSON定义如下:<json:object name="overmmsobj"><json:property name="totalCount" value="${totalCount}" /><json:property name="path" value="${path}" /><json:property name="musicPath&q

《Puppet实战手册》——2.7 数组中多个元素的遍历

2.7 数组中多个元素的遍历 数组是Puppet中的一个强大的功能,无认想对一组元素做何种相同的操作,数组都能够有所帮助.用户可以通过把数组的内容放在方括号中来创建一个数组. $lunch = [ 'franks', 'beans', 'mustard' ]操作步骤下面是一个常见的如何使用数组的例子. 1. 把下面的代码添加到配置清单中. $packages = [ 'ruby1.8-dev', 'ruby1.8', 'ri1.8', 'rdoc1.8', 'irb1.8', 'libreadl

ASP.NET数组删除重复值实现代码_实用技巧

根据这段代码,自己编写了一个小程序作为代码资料参考,方便以后可以直接拿来用,不需要网上找.如果你觉得还不错的话,就把它收藏起来吧! 1.前台代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>数组删除重复值</title> </head> <body> <form id="for