Perl文件写入时的缓存问题

perl 文件 缓冲 写入 print it

Perl写日志时,发现最后的日志没有写入日志文件。原因是Perl写文件时默认是先写入缓冲区中,当缓冲区写满后,再将缓冲区的内容一起写到文件中。因此,当缓冲区还没有写满时,虽然调用了print函数,但是文件中是看不到写入的内容的,例如下面的代码:

open LOG, '>>', $file_log or die "Open $file_log failed: $!\n";
print LOG "Hello World!\n";
sleep(3600);

执行这段脚本后,打开日志文件后,发现里面并没有“Hello World!”。

解决方法:将文件句柄变成hot,即不进行缓冲,直接写入文件。修改后的代码如下:

open LOG, '>>', $file_log or die "Open $file_log failed: $!\n";
select LOG;
$| = 1;
print LOG "Hello World!\n";
sleep(3600);

这样在运行脚本后,可以在日志文件中立刻看到“Hello World!”。

相关推荐

  • hibernate的一级、二级缓存问题 14.2.1什么是缓存缓存是介于应用程序和物理数据之间的,其作用是为了降低应用程序对物理数据访问的频次从而提高应用系统的性能。缓存思想的提出主要是因为对物理数据的访问效率要远远低于对内存的访问速度,因而采用了将部分物理数据存放于内存当中,这
  • Ajax缓存问题[2006-04-04] 今日在做Ajax的项目,发现一个问题:提交数据后,取不回提交的数据。郁闷多时,仔细分析,发现后台日志没有取数据的消息,前端也没有出现“正在读入数据”的提示。因此觉得应该是系统缓存的问题,遂google,解决。方法如下:方法1:服务器端代码加
  • nginx proxy 反向代理 负载均衡 proxy_cache 缓存完整配置文件   user;worker_processes16;error_log/home/logs/nginx_error.logcrit;pid/usr/local/nginx/logs/nginx.pid;#Specifiesthevaluef
  • 使用flexpaper实现在线预览功能时 ,遇到的flash缓存问题的解放方案 http://blog.csdn.net/z69183787/article/details/18967765
  • 电子政务系统生命周期的运行和维护问题探讨,软件工程论文 电子政务系统生命周期的运行和维护问题探讨,软件工程论文伴随着软件产业的快速发展,我国政府电子政务程度不断加深。各地信息化系统建设速度不断加快,越来越多的电子政务系统运行于互联网之上。根据2003年1月1日开始实施的《中华人民共和国政府采购法
  • 怎么解决XP不能访问Win7共享文件的问题    Win7设置共享后,可以访问XP的共享文件夹;XP可以进入Win7的电脑浏览共享的目录,但不能访问Win7共享的文件夹,提示没有权限。  首先确认:  (1)两台机器的物理链路是畅通的(能ping通);  (2)两个系统都已经打开打印机
  • 问下试行文件和正式文件的效力问题 规定、试行规定、暂行规定的有效期各有何规定?AsRoma托蒂V11级分类:法律被浏览1432次2013.01.30CHW8888采纳率:41%11级2013.01.31一般是5年吧,具体要看各省的规定试行法律文件zpuoqv4级分类:财务税
  • 避免因引入头文件过多,导致编译时间过长处理方式 1,在.h文件里声明@classXXx;在.m实现文件中引入#import"XXx.h"然后把常用的写入预编译.pch文件中。2,iOS7新特性模块编程,Xcode5以上优化Buildsetting->EnableModules(Ca
  • PHP文件缓存类实现代码 本篇内容重点讲解了PHP文件缓存类实现代码,php中缓存分类数据库缓存,文件缓存和内存缓存,对php缓存感兴趣的朋友可以学习学习下面的文章。php中缓存分类数据库缓存,文件缓存和内存缓存,下面我来给各位同学详细介绍PHP文件缓存类实现代码,
  • 技巧:苹果电脑怎么清理缓存文件 每一台电脑使用之后都需要我们不断维护才能更好的运行,长期使用。尽管网上一直流传着多种清理Mac的操作方法,但不少Mac用户仍在为如何清理Mac系统中的文件缓存十分烦恼,小编本集为大家带来了快速清理的使用技巧,这种方法你一定可以立即掌握,快来
  • Ajax缓存的问题. 昨天被问到如何制止Ajax缓存的问题竟然没想到过,Ajax的本质就是将状态保存在客户端,因此资源的缓存和再利用是他的优势所在,但有时候不希望被缓存,例如计数器,不同请求的计数器得到的结果应该是最新的。在线时长也应该每次刷新不一样。解决办法是
  • PHPExcel解决内存占用过大问题-设置单元格对象缓存 PHPExcel解决内存占用过大问题-设置单元格对象缓存PHPExcel是一个很强大的处理Excel的PHP开源类,但是很大的一个问题就是它占用内存太大,从1.7.3开始,它支持设置cell的缓存方式,但是推荐使用目前稳定的版本1.7.6,

你的评论

就没有什么想说的吗?

最新博客

关于我们 加入传客 媒体报道 帮助中心 传客活动 免责声明 联系我们 移动版 移动应用

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X