2010-06-09 104 views
3

這兩個代碼片段有什麼區別?Perl中「>>」和「>」的區別

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

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

+6

另請注意,一般建議使用open參數的3參數形式以及使用詞法文件句柄。換句話說,爲你的文件句柄使用一個標量變量,而不是'MYFILE'。例如:'open(my $ file_handle,'>','output.txt')或者死亡$!'。 – FMc 2010-06-09 11:23:24

+5

這真的不是「在Perl中」。 Perl只是延續了* NIX的習慣用法。 – Axeman 2010-06-09 13:10:09

+2

這功能嗎?您只需閱讀文檔即可找到答案。 – Ether 2010-06-09 14:52:03

回答

10
  1. open (MYFILE, '>>data.txt') - 打開data.txt,保持原有的數據,從末尾添加數據。
  2. open (MYFILE, '>data.txt') - 打開data.txt,刪除裏面的所有內容,並從頭開始寫入數據。

perldoc -f open

如果MODE是'<'或沒有時,打開文件進行輸入。如果MODE爲'>',則文件將被截斷並打開輸出,並在必要時創建。如果MODE是'>>',則會打開文件進行追加,並在必要時再次創建。

它從殼使用的是,

  • cmd < file.txt到文件複製到標準輸入莖,
  • cmd > file.txt到stdout寫入到一個文件,並且
  • cmd >> file.txt追加標準輸出到的端部文件。
+0

@mirod:'open(MYFILE,'> data.txt')'相當於'open(MYFILE,'>','data.txt')'。請閱讀鏈接。 – kennytm 2010-06-09 09:26:28

+0

@mirod:好吧,我明白你的意思了。更新以使其更清晰。 – kennytm 2010-06-10 14:02:21

相關問題