Perl中'>>'和'>'的区别

3
这两段代码有什么区别?
  1. open (MYFILE, '>>data.txt');

  2. open (MYFILE, '>data.txt');

这两段代码都是用来打开一个文件。第一段代码的作用是将数据追加到文件末尾,而第二段代码则会覆盖原有的文件内容。

6
请注意,通常建议使用具有三个参数的open形式以及词法文件句柄。换句话说,请使用标量变量作为文件句柄,而不是像“MYFILE”这样的东西。例如:open(my $file_handle,'>','output.txt') or die $! - FMc
5
这实际上并不是“用Perl编写的”。Perl只是延续了*NIX惯用语。 - Axeman
2
这是作业吗?你只需阅读文档就可以找到答案。 - Ether
1个回答

13
  1. open (MYFILE, '>>data.txt') — 打开data.txt文件,在原有数据基础上,从文件末尾处追加新数据。
  2. open (MYFILE, '>data.txt') — 打开data.txt文件,删除其中所有内容,从文件头开始写入新数据。

引用自perldoc -f open:

如果 MODE 是 '<' 或什么都不指定,则该文件被打开以进行输入。如果 MODE 是 '>',则该文件将被截断并为输出而打开,必要时进行创建。如果 MODE 是 '>>',则该文件将以追加的方式打开,必要时进行创建。

这源自于 shell 的使用方法:

  • cmd < file.txt 将文件复制到标准输入(stdin)中
  • cmd > file.txt 将标准输出(stdout)写入文件中
  • cmd >> file.txt 将标准输出(stdout)追加到文件末尾

@mirod: open(MYFILE, '>data.txt') 等同于 open(MYFILE, '>', 'data.txt')。请阅读链接。 - kennytm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接