免费注册 查看新帖 |

Chinaunix

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

子函数与main代码有什么区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-01 10:46 |只看该作者 |倒序浏览
不知道哪里出错了, 把下面可以正常运行的代码段,
  1. my $tempfile = 'test.txt';

  2. unless(open (IN, '>>', $tempfile)) {
  3.            print "\nError: unable to open file $tempfile: $! \n";
  4.            exit -1;
  5.      }
  6.      my %test = map { (split, $_)[1]=> undef }  <IN>;
  7.      for  (@lease){
  8.          /(\S+)\s+(\S+)\s+(\S+)$/;
  9.          next if  exists $test{$2};
  10.          print  "$1\t$2\t$3\n";
  11.      }
  12. close IN;

复制代码
放在子函数中, 这时语句next if  exists $test{$2};就不起作用了
  1. my $tempfile = 'test.txt';
  2. &getData($tempfile);

  3. sub getData {
  4.      my $temp = $_[0];
  5.      unless(open (IN, '>>', $temp)) {
  6.            print "\nError: unable to open file $temp: $! \n";
  7.            exit -1;
  8.      }
  9.      my %test= map { (split, $_)[1]=> undef }  <IN>;
  10.      for  (@lease){
  11.          /(\S+)\s+(\S+)\s+(\S+)$/;
  12.          next if  exists $test{$2};
  13.          print  "$1\t$2\t$3\n";
  14.      }
  15.      close IN;
  16. }
复制代码
里面的列表@lease是和test.txt一样的数据格式, 脚本是想找出@lease里有, 文件test.txt中没有项.

#cat test.txt
2013/08/30          192.168.1.35        ok
2013/08/31          192.168.2.48        not ok
.....
.....

论坛徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17处女座
日期:2014-09-01 09:25:1115-16赛季CBA联赛之吉林
日期:2015-12-22 14:01:5215-16赛季CBA联赛之广东
日期:2016-03-08 18:49:422016科比退役纪念章
日期:2016-07-06 12:19:55
2 [报告]
发表于 2013-09-01 22:13 |只看该作者
这不科学啊{:3_194:},确定2次测试中文件test.txt里的内容一样?

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
3 [报告]
发表于 2013-09-01 22:14 |只看该作者
本帖最后由 rubyish 于 2013-09-01 20:42 编辑


%test is empty
line 6:
  1.      unless(open (IN, '<', $temp)) {
复制代码

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
4 [报告]
发表于 2013-09-02 10:08 |只看该作者
符号错了      

论坛徽章:
0
5 [报告]
发表于 2013-09-02 10:23 |只看该作者
谢谢各位 , 已经解决.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP