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) 读一个字符
    
    用$/ 来表示行分割符
    
    

  • 相关阅读:
    Maven 集成Tomcat插件
    dubbo 序列化 问题 属性值 丢失 ArrayList 解决
    docker 中安装 FastDFS 总结
    docker 从容器中拷文件到宿主机器中
    db2 相关命令
    Webphere WAS 启动
    CKEDITOR 4.6.X 版本 插件 弹出对话框 Dialog中 表格 Table 自定义样式Style 问题
    SpringMVC JSONP JSON支持
    CKEDITOR 3.4.2中 按钮事件中 动态改变图标和title 获取按钮
    git回退到远程某个版本
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352037.html
Copyright © 2011-2022 走看看