设为首页 收藏本站
查看: 1024|回复: 0

[经验分享] perl-splice

[复制链接]
累计签到:39 天
连续签到:1 天
发表于 2015-12-26 15:53:25 | 显示全部楼层 |阅读模式
  函数splice的用法

格式
splice(@array,offset,length,list)      #在数组@array的offset的位置插入list,同时删除从   offset开始长度为length个元素 。list上下文返回操作 后的数组,scalar上下文返回操作后的数组最后一个元 素。
1、缺省list,即splice(@array,offset,length) #删除数组@array从offset开始长度为length个元素
2、缺省list和length,即splice(@array,offset) #删除数组@array从offstage开始到最后
3、缺省list、length和offset,即splice(@array) #删除数组@array所有元素


说明:(1)若length为负数,则删除的数组@array中的元素为:从offset开始,到从后往前数length个元素。如下例:
    my @rocks = (1..20);
    my @tmp = qw(a b c);
    print "@rocks\n";
    splice(@rocks,2,-3,@tmp);
     print "@rocks\n";
运行结果为1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
          1 2 a b c 18 19 20
      (2)若offset为负数,则以数组@array的尾部元素为起始点,同样删除offset后的length个元素。如下例:
  my @rocks = (1..20);
    my @tmp = qw(a b c);
    print "@rocks\n";
  splice(@rocks,-7,3,@tmp);
    print "@rocks\n";
运行结果为1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
  1 2 3 4 5 6 7 8 9 10 11 12 13 a b c 17 18 19 20
     (3)若offset越界,perl会提示警告,但会在尾部插入list。如下例:

   my @rocks = (1..20);
   my @tmp = qw(a b c);
  print "@rocks\n";
   splice(@rocks,22,-3,@tmp);
print "@rocks\n";
运行结果为splice() offset past end of array at C:\Users\tang\Documentstest.pl line 8.
   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 a b c
原文见:http://blog.sina.com.cn/s/blog_88a2ce2f0100vm2j.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156680-1-1.html 上篇帖子: [译]Perl:使用__SUB__获得当前子程序的引用 下篇帖子: 用perl做数据库迁移,从MSSQL到MYSQL(二)自动建表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表