• perl的输出缓冲


    今天写一个小脚本的时候,需要即时输出当前进度到命令行上,并即时将重要数据写入报告文件中。但是perl默认是有输出缓冲的,显示到命令行上必须以 结尾才行,输出到文件中,回车了都不行,非得要等缓冲区满了。
    代码:

    select( STDOUT );
    $| = 1;
    open( REPORT, ">report.txt" ) || die "create report error: $! ";
    select( REPORT );
    $| = 1;
    select( STDOUT );

          在写入报告和输出进度之前这样处理一下就可以了。第一句是选择标准输出句柄为当前默认输出句柄,并设置为不缓冲方式。然后选择文件句柄为默认输出句柄,设置为不缓冲模式。再最后重新设置STDOUT为默认输出句柄,少了这一句的话,标准输出就被重定向到文件里面去了。
          这样就会即时写入报告,不用担心丢失数据了。即使中途中止了程序,也有一部分结果在。做个小tip,免得忘记了,呵呵。

  • 相关阅读:
    我的第一个NHibernate示例
    Div+CSS实现表格滚动,JS隐藏和显示Div例子
    VUE 生命周期
    sql AND和OR
    vcloak 隐藏表达式
    sql 多表联查
    SQL 语句解析
    jenkins 使用
    sql 排序(order by)
    sql 基础查询
  • 原文地址:https://www.cnblogs.com/Tuzki/p/4651806.html
Copyright © 2020-2023  润新知