Perl学习笔记(六)--文件(一)

一、文件描述符:

    访问文件时用来代表文件的数字。

    它是系统资源,系统限制打开的文件描述符数量。

    Perl中只在某些系统调用时才使用它

文件句柄:

    功能同文件描述符,但是与文件描述符不是一个东西。

    Perl使用文件句柄代表文件。

    文件描述符与文件句柄互相转化:

    文件句柄=>文件描述符:fileno(F);返回文件描述符

    文件描述符=>文件句柄:open(F,”>&n”);

二、文件变量
     文件:存放在磁盘上,永久存储数据,用于读写访问。访问前要先打开文件,结束后关闭文件。

open(HANDLE,”>filename”)||die $!;    成功返回非零,失败返回零。

     HANDLE:文件句柄,文件变量.用来代表操作的文件,以字母开头,字母,数字,下划线组成,不以$,@,%类的符号开头,可能与关键字if等重名,故一般用大写字母.

    缺省打开的句柄STDIN,STDOUT,STDERR,文件描述符为0,1,2。不用调用open就可以直接访问

    STDIN:键盘输入,控制台

    STDOUT:屏幕,显示屏

    STDERR:错误输出,显示屏。

 

三、访问模式
     文件用于读还是写,在第二个参数前的>位置。

    (1) 只读:<或省略,若文件不存在则打开失败,如open(F,”file”),open(F,”<file”)
     (2) 只写:>,为写打开文件,若文件不存在则创建,文件存在则清除内容再写.
     (3) 追加:>>,为写打开文件,若文件不存在则创建,文件存在则不清除内容,在原内容后追加。
     (4) 读写:+<,可读可写,若文件不存在则打开失败,不清除内容,不追加,直接复盖原文件.
     (5) 读写+>,可读可写,若文件不存在则创建,文件存在则清除内容再写.
     (6) 读写+>》,可读可写,若文件不存在则创建,文件存在则追加.
     (7) 管道: |

 open(F,”| cat >hello”),把文件F的输出(print F $a)作为|后的输入.
 open(F,”comm|”),把comm的输出作为F的输入。

四、文件名

    Filename:可以是相对路径或绝对路径的文件名.
     说明:
     1.不含路径的文件名前的空格可以忽略,但有路径的文件名不能。
     2.可以用变量来代表文件名.
     3.特殊的文件名如”>file”,可能使读变成写,使用变量代表文件名时注意过滤文件名.
     4.复制文件句柄:open(F,”>&STDOUT”),写入F文件的内容都变成写入屏幕STDOUT
     5.使用文件描述符:open(F,”>&3″),把文件描述符复制成句柄,或者”>&=3″
     6.open() 打开成功返回非零,失败返回零.

open()||die “error $!”  成功时不执行die,失败时执行.
原文地址:https://www.cnblogs.com/Hebe/p/4441767.html