请高手帮忙!关于perl的编程问题

tonywei57 2011-07-05 02:06:40
文件1.csv位于D:\\,数据每隔5分钟刷新一次,要求是每隔五分钟读一下文件最后一行中的温度数据(无固定行数),如果累计六次大于30C,则打印错误信息,打印一次后次数清零,进行重新计数;各位高手觉得用perl语言应该怎么写,万望指教。
(文件类型为.csv,可用记事本格式打开,文件中可能包括结构数组,无文件源代码,结构包括编号,日期时间,温度,湿度,露点;温度格式,如30.11C)。
文件格式:
编号 ,日期时间 ,温度 , 湿度 , 露点
1, 28/6/2011 17:08:59, 29.80C, 30.93, 10.82
2, 28/6/2011 17:13:59, 30.09C, 30.64, 10.93
3, 28/6/2011 17:18:59, 30.00C, 30.74, 10.90
4, 28/6/2011 17:23:59, 29.93C, 30.69, 10.82
5, 28/6/2011 17:28:59, 29.95C, 30.59, 10.79
6, 28/6/2011 17:33:59, 29.97C, 30.66, 10.84
7, 28/6/2011 17:38:59, 29.96C, 30.66, 10.83
8, 28/6/2011 17:43:59, 30.07C, 30.60, 10.89
9, 28/6/2011 17:48:59, 30.19C, 30.46, 10.93
10, 28/6/2011 17:53:59, 30.30C, 30.19, 10.89
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
I_NBFA 2011-07-05
  • 打赏
  • 举报
回复

use 5.012;

my $file = "111.txt";
my $last;
my $times = 0;
my $eps = 60*5;
my $wtimes = 6;
my $otp = 30;
while(1){
if(open(FILE, '<', $file)){
$last = (reverse<FILE>)[0];
++$times if($last =~ m/([0-9\.]+)C/ && $1 > $otp);
if($times == $wtimes){
print("warning: tp overloaded in $wtimes times!\n");
$times = 0;
}
}
else{
print("$file open failed...\n");
}
close(FILE);
sleep($eps);
}


看完小骆驼,练手了。
iambic 2011-07-05
  • 打赏
  • 举报
回复
都不会的花自己先看书。
即便是举手之劳,也不代写代码。
yaya_smile 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iambic 的回复:]
你哪一步不会?
[/Quote]
我觉得他是哪一步都不会....:-D
iambic 2011-07-05
  • 打赏
  • 举报
回复
你哪一步不会?

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧