文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>文件句柄->标准文件句柄(转)

文件句柄->标准文件句柄(转)

时间:2010-02-26  来源:PHP爱好者

Perl脚本通过文件句柄连接到外部世界。从文件句柄读就导入外部数据,向文件句柄写则导出数据。根据文件句柄的创建方式,可能连向:
  1. 磁盘文件。
  2. 硬件设备,例如打印机等。
  3. 本地进程,例如窗口系统中的一个命令行窗口。
  4. 远程进程,例如一个网络服务器。
  5. "位存储桶"设备,也就是Unix/Linux系统中的/dev/null,该设备仅是吸引数据并忽略它。

    文件句柄可以是任何有效的Perl标识符,由大小写字母、数字和下划线字符组成。不同于其他变量的是,文件句柄没有标志性的前缀(像"$","@","%")。因此,为了使文件句柄有所区别,Perl程序员经常以全部大写字母表示它们。

    当Perl脚本开始执行时,默认地打开3个文件句柄:STDIN,STDOUT和STDERR。STDOUT文件句柄(即"standard output")标准输出,是默认的输出文件句柄。发送给这个文件句柄的数据在用户指定的输出设备上显示,通常是脚本开始运行的命令行窗口。STDIN(即"standard input")标准输入,是默认的输入文件句柄。从这个文件句柄读取的数据取自用户选择的输入设备,通常是键盘。STDERR(即"standard error")标准错误输出,用于错误信息、诊断、调试和其他类似的偶发输出,默认情况下,STDERR和STDOUT使用相同的输出设备,但是用户可以自行改变。

    正常输出和不正常输出有不同的独立文件句柄,这样用户就能够独立地转移它们;例如,将正常输出发送到文件而将错误输出发送到屏幕。

   

#!/usr/bin/perl -w
chomp ($input = <>);
print "If I heard you correctly, you said: $input\n";

 

    STDERR是warn()函数和die()函数的默认目标。用户在开始执行脚本之前可以改变三个标准文件句柄的连接。在Unix/Linux和Windows系统上,使用重定向元字符"<"和">"来完成这种改变。例如,对一个名为change.pl的脚本执行这两条重定向命令,将改变该脚本的标准输入,使其从文件data.txt中读取数据,并改变标准输出,使处理过的数据输出到文件changed.txt中:

 

#perl change.pl <data.txt>changed.txt

 

    标准错误不改变,因此诊断信息(例如,从内置的warn()函数和die()函数返回的信息)在屏幕上显示。

相关阅读 更多 +
排行榜 更多 +
枪战特训2

枪战特训2

飞行射击 下载
打击者19452代最新版

打击者19452代最新版

飞行射击 下载
合金弹头x最新版

合金弹头x最新版

飞行射击 下载