perl系列:输入与输出

1、文件句柄
文件句柄是一个变量,它的值表示一个输入来源或输出去向。
perl保留了6个特殊的文件句柄:STDIN、STDOUT、STDERR、DATA、ARGV、ARGVOUT。

打开文件句柄
open 变量名, "文件名";    #变量名即文件句柄的名称,可任取,建议大写
    文件名前可以使用<、>、>>来表示读入、输出和附加。若省略,则表示输出。
    open Filein, "< file1";
    open Fileout, "> file2";
    open Fileout, ">> file3";
    当输出文件不存在时,可以自动创建。但当目录不存在时,不能自动创建。

关闭文件句柄
close 变量名;    #应在使用完毕后及时关闭文件句柄

2、读入:使用整行读入操作符
<文件句柄>    #一次读入一行
    可使用for和while连续读入。但for要求列表,而while要求标量。
    因此for是一次全部读入,逐个处理;而while是一次读入一个,处理一个。
    print "it is $_" for <Filein>;    #当文件过大时,会非常消耗内存
    print "it is $_" while <Filein>;

将文件句柄重定向到开头
seek FIND, 0, 0;

<>    #当省略文件句柄时,则使用程序的调用参数,即@ARGV
    该参数实际上应该在程序开始运行之前获取
    若程序未调用任何参数,则从STDIN读入。
    因此大部分情况下,可以使用<>代替<STDIN>。

3、输出:print、printf
默认输出到STDOUT

    print "hello\n";    #屏幕输出hello

输出到文件
print 文件句柄 "hello\n";    #将hello输出到文件句柄指向的位置

格式化输出
printf "格式字符串", 数据列表;    #常用格式符号有%d、%s、%f

4、输出错误和警告信息:和条件判断联用
die "出错信息";    #中止程序,输出出错信息
die "$!";    #使用$!输出系统服务请求失败信息

warn "警告信息";    #输出警告信息,但不中止程序

5、目录句柄:和文件句柄类似
opendir D1, "../test";    #在路径名称里不能使用"~"
readdir D1;    #读取目录里的所有文件及文件夹名称,包括"."和"..",但不包括路径。因此在文件测试时要加上路径。
closedir D1;

你可能感兴趣的:(perl系列:输入与输出)