免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1928 | 回复: 6
打印 上一主题 下一主题

问题求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-13 22:42 |只看该作者 |倒序浏览
今晚的最后一个问题:
  1. my @array=qw{1 2 3 4 5 6 7 8 9 10};
  2. foreach(@array){
  3.         if($_>2 && $_<4){
  4.                 #此时在数组中插入一个变量如$string
  5.         }
  6. }
复制代码
该怎么操作呀,别再开玩笑啦,看在都这么晚了,还在为程序发愁的我,就帮一下啦~~~多谢多谢~

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
2 [报告]
发表于 2011-10-13 22:50 |只看该作者
回复 1# jiujiujiu338


    perl有专门干这个的函数,查下splice

论坛徽章:
0
3 [报告]
发表于 2011-10-13 23:53 |只看该作者
回复 2# yinyuemi


    splice应该可以,但是用法是不是splice ARRAY,OFFSET,LENGTH,LIST,需要知道offset,但是这里我不知道offset,怎么才能知道呀,多谢

论坛徽章:
0
4 [报告]
发表于 2011-10-13 23:57 |只看该作者
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my @array  = qw{1 2 3 4 5 6 7 8 9 10};
  5. my $string = 'a';
  6. foreach my $i( 0..$#array){
  7.         if($array[$i] > 2 && $array[$i] < 4){
  8.                 #此时在数组中插入一个变量如$string
  9.                                 splice(@array,$i,0,$string);
  10.                                 last;
  11.         }
  12. }
  13. use Data::Dumper;
  14. print Dumper \@array;
复制代码
回复 1# jiujiujiu338

论坛徽章:
0
5 [报告]
发表于 2011-10-14 00:16 |只看该作者
回复 4# kk861123


    多谢,还有个小问题请教一下,在use Tie::File时,tie(@lines,'Tie::File',$filename1),我delete了$lines[1],这时在filename1文件中相应的也删除了,但是出现了一个空行,怎么把空行删除呀,多谢~

论坛徽章:
0
6 [报告]
发表于 2011-10-14 08:29 |只看该作者
回复 5# jiujiujiu338


    也是用splice,
  1. splice(@lines,1,1)
复制代码
这个函数我也用的很少,但是很有用值得好好研究!

论坛徽章:
0
7 [报告]
发表于 2011-10-14 09:30 |只看该作者
刚才查手册的结果
split(ARRAY,OFFSET,LENGTH,LIST)
在Array中删除从OFFSET开始,以LENGTH结束的元素(不指定LENGTH则删除到数组末尾)。
如果指定了LIST,则以该LIST替换掉删除的元素。

这个函数我之前都不知道,结果数组替换用的是自己写的函数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP