看板 Perl 關於我們 聯絡資訊
因為 while 是提供 boolean context 關係。 通常會這樣寫 while( $f = shift @files ) { unlink $f; } 其實通常會只寫一行: unlink $f for @files; 或是 map { unlink $_ } @files; ※ 引述《adbro (廣告王道)》之銘言: : 各位大大好 : 小弟之前在實做一個刪除檔案的程式 : 我已經將要刪除的檔案名稱列表都存到陣列@files中, : 但利用迴圈跑unlink時,卻變成無窮迴圈? : 如下: : while(@files){ : unlink($_); : } : 但執行下去變成無窮迴圈檔案也未刪除? : 用for卻可以正常執行! : 百思不得其解 : 想請教板上的大大們,是否小弟做法有誤? : while與for不是一樣功能? : 用while無法執行嗎? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.24.37
LyinZ:或是 unlink @files; (逃) 03/14 13:25
zard1989:unlink也太妙了,推樓上! 03/15 00:27
kornelius:差點忘了 unlink 也可以吃 List :p 03/16 18:44
adbro:感謝各位大大的解說,小弟受教了 03/23 22:11