找回密码
 注册
查看: 3064|回复: 0

perl语言中如何使用文件句柄

[复制链接]
发表于 2011-11-13 23:05:30 | 显示全部楼层 |阅读模式
当某个文件句柄被打开进行输入时,可以像从STDIN 中输入一样。例如,读入Unix 中的密码文件:
if(! open PASSWD, “/etc/passwd”){
die “How did you get logged in?($!)”;
}
while(<PASSWD>){
chomp;
...
}
在本例中,die 后面的消息使用了$!。它被括号括起来了。如你所知的, “行输入操作(line-input operator)”由两部分组成;
尖括号(<>,真正的行输入操作(line-input operator))和尖括号中的文件句柄。
写出(>)或追加的(>>)的文件句柄,可以和print 或printf 结合使用,如:
print LOG “Captain’s log, stardate 3.14159\n”; #输出到LOG 中
printf STDERR “%D percent complete.\n”, $done/$total * 100;
注意到文件句柄和要打印的内容之间没有逗号了吗◆?如果使用括号,看起来会非常古怪。下面的两种写法都是正确的:
◆如果你英语或者语言学方面的成绩是A,当我们说这是“间接对象语法(indirect object syntax)”,你可能说:“是的,当然我知道文件句柄
后面为什么没有括号,因为它是一个间接对象(indirect object)”。我没有得到A,因此我不知道为什么这里不用逗号,但我们不关心它,
因为Larry 告诉我们这样做。
printf (STDERR “%d percent complete.\n”, $done/$total * 100);
printf STDERR (“%d percent complete.\n”, $done/$total * 100);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 21:33 , Processed in 0.046099 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表