设为首页 收藏本站
查看: 1131|回复: 0

[经验分享] Perl: 文件操作、my、时间转换、日志监控

[复制链接]

尚未签到

发表于 2015-12-27 10:28:07 | 显示全部楼层 |阅读模式
  ①文件操作
  使用Perl从文件中读取字符串,一般有两种方法:
1. 一次性将文件中的所有内容读入一个数组中(该方法适合小文件):




open(FILE,"filename")||die"can not open the file: $!";
@filelist=<FILE>;
foreach $eachline (@filelist) {
        chomp $eachline;
}
close FILE;

  当文件很大时,可能会出现"out of memory"错误,这是可以采用如下方法,一次读取一行。
  2. 一次从文件中读取一行,一行行地读取和处理(读取大文件时比较方便):




open(FILE,"filename")||die"can not open the file: $!";
while (defined ($eachline =<FILE>)) {
     chomp $eachline;
         # do what u want here!
}
close FILE;
  ②our、my、local的区别
  http://www.cppblog.com/converse/archive/2008/07/31/57636.html
  http://topic.csdn.net/t/20000223/18/2737.html
  our:全局变量定义,如果在函数里定义的时候全局已经定义,则相当于引用全局变量;(全部访问:上级,当前,下级)
  local:把全局变量局部化(等于是局部的全局变量);局部化后所有由此局部引出的这个变量的修改,都只影响到该局部为止。(访问:当前,下级)
  my:真正的局部变量,该变量仅在此局部中有效,在子过程中无效。(访问:当前)
  
  ③时间的转换(日常所用的日期和时间串格式 与 纪元秒 之间的转换)
  纪元to日常:$common = localtime(time); # 秒,分,时, 日,月,年,一周第几天,一年第几天,夏令时
  日常to纪元:$epoch_seconds = timelocal($s,$m,$h,$mday,$mon,$year);
  http://muent.com/a/develop/AllDL/201004303575.html
  
  ④日志监控
  模拟写日志:




use IO::Handle;
open (FD, "> test.log") or die $!;
FD->autoflush(1);
while (1) {
    my $now = time;
    print FD $now, "\n";
    sleep 1;
}
close FD;
  模拟监控日志:




open (FD, "< test.log") or die $!;
while (1) {
    my $in = <FD>;
    print $in;
}
close FD;
  小刁提醒:读入时可以写为 "< tail -f test.log |"
  
  ⑤子过程
  http://blog.csdn.net/aldenphy/archive/2009/11/03/4761585.aspx

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156860-1-1.html 上篇帖子: [转帖]调试Perl CGI程序,作者 PerlMonth/Jeff Boes 下篇帖子: 用perl实现宋词词频统计——东风何处是人间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表