+ -
当前位置:首页 → 问答吧 → 新加入perl,问个小骆驼的

新加入perl,问个小骆驼的

时间:2011-02-20

来源:互联网

小骆驼上说这个是追加:
open LOG,"> $logfile";

注意 "> " 前的空格 , 这个到底是什么意思啊, 书上是这么解释的 perl 会忽略它,但可以防止意外发生

初学者请教各位了

作者: BangBull   发布时间: 2011-02-20

$logfile的值如果是">file",那">$logfile"就变成">>file",由改写变成添加内容了

作者: FenRagwort   发布时间: 2011-02-20

这个是追加吗?

正确的推荐写法:

open my $fd, ">>", $file or die $!;

几个重点:

(1)使用三参数的open;
(2)使用my声明的局部变量代替裸文件句柄;
(3)追加是">>"而不是">";
(4)每个open都要判断执行结果(or die)。

作者: 兰花仙子   发布时间: 2011-02-20

回复 兰花仙子
谢谢指教
1. 追加 ">>"
2. 清空后再添加内容 或 生成文件 ">"
3. 只读  "<"

以上三种我明白

###################

是我看书不仔细  ,   小骆驼原话是这样: 如果 $logfile 的值是 ">passwd" 而之前又没有空格的话 , 就会变成以替换方式写入,而非以追加方式写入文件

open LOG ,"> $filelog"

原来是这个意思, 如果 open LOG ,"> $filelog" 中的 "> "前没有空格则成这样了 ">>paaswd" ($logfile 文件名是 >passwd) ,就变成追加的意思了

                          而有空格,则还是 替换  , 如 open LOG ,">   >passwd"

作者: BangBull   发布时间: 2011-02-20

的确还是这种好             open my $fd, ">>", $file or die $!;

也避免上贴的说情况了

作者: BangBull   发布时间: 2011-02-20