zoukankan      html  css  js  c++  java
  • perl 文件[二]

    错误输出函数与错误变量
    
    open() || die "error$!"; 成功时不执行die,失败时执行  (||或操作)
    
    die($errstr);向STDERR输出指示错误信息的串,然后退出程序。
    
    warn($errstr);向STDERR输出信息,不退出程序
    
    $! 最后一次错误的信息。与die,warn 结合使用。
    
    die($str)中$str中最后不是
    时,输出自动添加at程序名line行号。
    
    如die("can't open");输出can't open at myprog line 13
    
    加上
    如“can't open
    "时没有添加的信息。
    
    
    open (FD,"5.pl") || die ;
    @line=<FD>;
    foreach (@line) {
    print $_;
    };
    print "xxxxxxxx";
    
    die 直接退出
    
    
    open (FD,"5.pl") || warn($errstr); ;
    @line=<FD>;
    foreach (@line) {
    print $_;
    };
    print "xxxxxxxx";
    
    warn($errstr);向STDERR输出信息,不退出程序
    
    
    文件缓冲:
    close(F);最后要关闭文件。隐含关闭文件,重打开已经打开的,先关闭再打开,程序退出自动关闭。真正写文件。
    
    
    文件缓冲:通常为代缓冲的文件写。写文件时,系统先写到称为文件缓冲区的内存中,缓冲满再真正写入磁盘。一般在关闭时缓冲内容才开始写入磁盘,
    
    称为刷新。结果时用tail -f 是看不到不断地输出内容的。
    
    
    无文件缓冲:每次写都真正写入磁盘中,不经过内存。频繁写入可能影响性能。
    
    设置$|变量决定是否有文件缓冲,$|=1无缓冲。但值对当前输出文件有效。如STDOUT,设置另外的文件要先用select(F).
    
    select(F)设置当前文件,返回原文件句柄。设置完再SELECT(OLD)返回原文件。
    
                缓冲                  无缓冲
    打开:  open,sysopen              sysopen
    
    关闭       close                 
    
    读       <>,readline             sysread
    
    写       print                   syswrite
    
    
    定位        tell,seek            sysseek
    
    
    文件名:
    
    Filename:含相对路径或绝对路径的文件名
    
     不含路径的文件名前的空格可以忽略,但有路径的文件名不能。
    
    可以用变量代表文件名
    
    特殊的文件如">file",可能使读变成写。使用变量代表文件名时注意过滤文件名。
    
    赋值文件句柄;open(F,">&STDOUT);写入F文件的内容都变成写入屏幕STDOUUT
    
    使用文件描述符:open(F,">&3);把文件描述符赋值成句柄。或者">&=3"
    
    open() 打开成功返回非零,失败返回零 
    
    
    
    其他文件打开函数:
    
    间接文件变量:用简单变量表示文件变量,代表文件变量名。
    
    $a="F";open($a,"mode","path");
    
    sysopen(H,name,m|o|d|e,priv);文件句柄,文件名,读写模式,权限。
    
    权限类似0755的数字,模式有
    
    O_RDONLY,
    
    
    读文件
    
    $line=<file>读一行到line,指针后移一行。缺省读到$_中
    
    $/='
    ',行分割符,遇到它则为一行结束,行包含$/.
    
    可用chomp($s)去除标志,行尾不含$/则不去除自负
    
    可设置$/为其他自负窜,遇到$/为行结束,chomp 去除此字符窜
    
    @array = <file>文件内容全部读出,每行为一个元素。含回车。
    
    当从STDIN中读时,可省略为<> .原理见后
    
    read (F,$in,len[,$offset])
    getc(F) 读一个字符
    
    用$/ 来表示行分割符
    
    

  • 相关阅读:
    【基于mini2440开发板的交叉编译环境及内核树配置.
    linux 模块编译步骤(原)
    鸟哥的linux私房菜
    ios消息机制
    初学者必学文档:Objective-C语法入门(1)
    oc基础知识
    ios 人魔七七
    Usaco Open09 Gold
    USACO JAN 2012 Bronze
    USACO·2012·Feb Bronze
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352037.html
Copyright © 2011-2022 走看看