不指定文件句柄给print,则默认会使用STDOUT。可以通过select 操作进行更改。
if(! open LOG, "> log.txt"){
die("error");
}
select LOG;
print "I hope Mr.Slate doesn't find out about this.\n";
#将出错信息送到私有错误日志上
if(! Open STDERR, “>>/home/barney/.error_log”){
die “Can’t open error log for append: $!”;
}
程序的名字在Perl 的特殊变量$0。
$ ./your_program <dino >Wilma
从一个名叫dino 读入,将结果输出到叫做wilma 的文件之中。
$ cat fred barney | sort | ./your_program | grep something | lpr
cat 命令将输出文件fred 的所有行,紧接着是文件barney 的所有行。
这个输出作为sort 的输入,它将所有的输入的行进行排序,再将结果传递给your_program。经过your_program 处理后,将结果传给grep,它会将某些行去除掉,然后送给lpr,它会将传给它的数据打印出来。
默认情况下,错误将输出到用户的显示屏◆,但用户可能把错误输出到文件中:
$netstat | ./your_program 2>/tmp/my_errors
open CONFIG, “dino”; #打开了一个名为CONFIG 的文件句柄,它指向dino 文件。
open CONFIG, “<dino”; #它和上面的例子是一样的,只是< 明确的指明了“使用这个文件进行输入操作”。
open BEDROCK, “>fred”; #打开文件句柄BEDROCK,输出到新文件fred 中。
open LOG,“>>logfile”; #打开一个文件,数据追加到文件后面。
Perl 的新版本中(从Perl5.6 开始),open 支持“3 参数”类型:
open CONFIG, “<”, “dino”;
open BEDROCK, “>”, $file_name;
open LOG, “>>”, &logfile_name(); |