perl学习笔记6

不指定文件句柄给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();

posted @ 2012-09-10 20:59  nalasun  阅读(154)  评论(0编辑  收藏  举报