• Perl学习笔记(七)--文件(二)


    五、错误输出函数与错误变量  

    open()||die “error $!”  成功时不执行die,失败时执行
    

       1.die($errstr):向STDERR输出指示错误信息的串,然后退出程序。
      2.warn($errstr):向STDERR输出警告信息,不退出程序。
      3.$!最后一次错误的信息,一般与die,warn结合使用。
      说明:
      die($str)中$str最后不是/n时,输出自动添加at程序名line行号,如die(“can’t open”)
      输出can’t open at myprog line 13,加上/n如”can’t open”时没有添加信息。

    六、文件缓冲
      close(F):最后要关闭文件,隐含关闭文件,重打开已经打开的,先关闭再打开,程序退出自动关闭,这时才真正写文件。

      1.文件缓冲:通常为带缓冲的文件写,写文件时,系统先写到称为文件缓冲区的内存中,缓冲满再真正写入磁盘.一般在关闭时缓冲内容才开始写入磁盘,称为刷新,结果是用  tail -f  是看不到不断地输出内容的。
      2.无文件缓冲:每次写都真正写入磁盘中,不经过内存,频繁写入可能影响性能。
      3.设置$|变量决定是否有文件缓冲,$|=1无缓冲,但只对当前输出文件有效,如STDOUT,设置另外的文件要先用select(F)。
      4.select(F)设置当前文件,返回原文件句柄,设置完再select(OLD)返回原文件。

      缓冲 无缓冲
    打开 open,sysopen sysopen
    关闭 close  
    <>,readline sysread
     print syswrite
    定位  tell,seek sysseek 


      其它文件打开函数
      间接文件变量:用简单变量来表示文件变量,代表文件变量名
      $a=”F”;open($a,”mode”,”path”);

     

    七、读文件
      1.常见方式:$line=<file> 读一行到line,指针后移一行,缺省读到$_中
        $/=’/n’ 为行分隔符,遇到它则为一行结束,行包含$/
      2.用chomp($s)去除此标志,行尾不含$/则不去除字符。
      3.可设置$/为其它字符串,遇到$/为行结束,chomp去除此字符串。

      @array=<file> 文件内容全部读出,每行为一个元素,含回车,当从STDIN中读时,可省略为<>。
      read(F,$in,len[,$offset] 读入$in
      sysread(F,$in,len[,$offset])
      getc(F)读一个字符

  • 相关阅读:
    我的第一篇博客
    1.2 位于Shell脚本第一行的#!
    1.1 一个简单的脚本
    JDK与CGlib动态代理的实现
    解决Sublime Text3中文显示乱码问题
    多线程讲解
    (转)Spring中@Async用法总结
    (转)spring boot注解 --@EnableAsync 异步调用
    Spring Boot中的注解
    (转)如何用Maven创建web项目(具体步骤)
  • 原文地址:https://www.cnblogs.com/Hebe/p/4442246.html
Copyright © 2020-2023  润新知