免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2775 | 回复: 5

请问$errNum这个变量怎么定义成一个文件里的所有内容啊? [复制链接]

论坛徽章:
0
发表于 2010-07-11 22:56 |显示全部楼层
本帖最后由 maike_xiao 于 2010-07-11 23:17 编辑

我想从我定义的文件里取出Soft Errors: 后面的数字。请问$errNum这个变量怎么定义成一个文件里的所有内容啊?

#!/usr/bin/perl

use strict;
use warnings;

my $log_file = '/perl-test/iostat.txt';

open(LOG,"< $log_file") or die "Unable to open logfile:$!\n";
while(<LOG>){
     $errNum =~ /Soft Errors:\s(\d+).*(\d+).*(\d+)/;
     my $softE=$1;
     my $hardE=$2;
     my $tranE=$3;
     
     print "soft error: $softE\n";
     print "hard error: $hardE\n";
     print "tran error: $tranE\n";
}

close(LOG);

论坛徽章:
0
发表于 2010-07-12 08:37 |显示全部楼层
$errNum =~ /Soft Errors:\s(\d+).*(\d+).*(\d+)/;

这一行肯定有问题,应该写成:

$errNum =~ /Soft Errors:\s(\d+).*?(\d+).*?(\d+)/;

不明白楼主要表达的意思,希望楼下的能理解。

论坛徽章:
0
发表于 2010-07-12 08:46 |显示全部楼层
是不是指 $errNum 就是LOG里读出来的数据 的意思呢?
  1. my $log_file = '/perl-test/iostat.txt';
  2. open(LOG,"< $log_file") or die "Unable to open logfile:$!\n";
  3. while(<LOG>){
  4.      /Soft Errors:\s(\d+).*(\d+).*(\d+)/;
  5.      print "soft error: $1\n";
  6.      print "hard error: $2\n";
  7.      print "tran error: $3\n";
  8. }
  9. close(LOG);
复制代码

论坛徽章:
0
发表于 2010-07-12 09:51 |显示全部楼层
  1. my $log_file = '/perl-test/iostat.txt';
  2. my $errNum;
  3. {
  4.     local $\ = undef;
  5.     open(LOG,"< $log_file") or die "Unable to open logfile:$!\n";
  6.     $errNum = <LOG>;
  7.     close(LOG);
  8. }
复制代码
想用變量保存文件所有內容, 而不是一行的內容?

论坛徽章:
0
发表于 2010-07-12 13:39 |显示全部楼层
是不是指 $errNum 就是LOG里读出来的数据 的意思呢?
guap514 发表于 2010-07-12 08:46


谢谢,就是这个意思 !

论坛徽章:
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
发表于 2010-07-12 18:22 |显示全部楼层
undef $\;
$errNum = <LOG>;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP