永发信息网

perl高手求救!!!写一个perl程序

答案:3  悬赏:80  手机版
解决时间 2021-03-03 09:20
写一个perl程序,要运行在log文件上的,把每一行开始有“error“都挑出来,不管这行开始之前有没有空格,把挑出来的这些行转到standard error stream去, 剩下的转去standard output stream。 都挑完后,算出总共挑了几行出来。确保这个程序能同时运行多个文件!

比如有个log文件里有:
ERROR - general error 42.
Login successful. No ERROR found.
ERROR unexpected exception in pid 97.
ERROR: pid 97 terminated

当我们运行 cat logdata | 我的program.pl, 然后我们选出1,3,4行,最后写出“there were 3 errors”。

拜托拜托!!!
最佳答案
一定要使用 cat logdata | 我的program.pl 这种方式吗?
如果在perl脚本里打开文件会简单的多。
全部回答
如我在要求里说的,如果使用全局变量,那么就很容易实现了。我是想看看python用什么方法也可以实现perl、c中的static类型的变量。因此,二楼的方法其实是不符合要求的,呵呵其实《learn python》一书中也提到了类似的解答方法,除了使用class外,另外两种办法就是三楼和四楼两位的解决办法了。此外,似乎使用generator语法并不能达到我想要的目的 ):
#!/usr/bin/perl -w use strict; foreach my$file(@ARGV) { my $errnum = 0; open LOG,$file || die "can't open log file: $file\n"; while() { if (/^\s+ERROR/i) { $errnum ++; print STDERR $_; } else { print $_; } } close LOG; print STDERR "-" x 50 , "\n"; print STDERR "There are $errnum error in file \"$file\"\n\n"; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
牛肉片配什么菜炒好吃
小时代电影里她们四人喝酒看烟火的酒店在哪里
新宝宝孕婴用品专营店怎么去啊,有知道地址的
检察院直接受理的案件不批捕是不是就说明没事
一个人的内在美与外在美应是和谐统一的,内在
联想笔记本G开头B开头那个好
蓝色双肩包配什么衣服
Y815/Y865(路口)我想知道这个在什么地方
下图是某实验室做的通过动物纤维母细胞等获得
玛丽上课总是迟到。(翻译为英文)
手机换了其它手机的主板会怎样?
怎么理解在新媒体形式下的“内容为王”
你若将右手按在自己的胸部左侧,你就可以感受
看鱼鳞片能分辨种类吗
河南师范大学新联学院的英语专业怎么样
推荐资讯
当你老婆或者女朋友觉得工作很辛苦时 作为男
右图表示叶面积指数与光合作用和呼吸作用的关
百家姓里,有没有‘希’这个姓?
为什么有人说去广州\深圳那边找工作还不如去
基金上市交易公告书的编制主体是(  )。A.
对不对 粤语怎么说
我女朋友愿意给我说她来大姨妈这种很隐秘的事
空调出水是什么原因
求一本女主叫沈七七的小说,男主好像是她舅舅
在五腧穴中,腧穴主治A.身热B.心下满C.体重节
钱江苑社区室内健身房地址在哪,我要去那里办
()也称为Firewire火线接口。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?