看板 Perl 關於我們 聯絡資訊
全部的程式碼如下: #!/usr/bin/perl-w $file="test.txt"; open(LINE,$file) or die "error can't open file"; while(<LINE>){ s/(\w+)/$w{lc($1)}++/eg; END{print $w{$_}," $_\n" foreach (sort keys %w)} } close(LINE); 我沒看到任何一個BEGIN @@ 所以才會想問為何使用END 及其用意在哪呢? ※ 引述《reizarc (零式札克)》之銘言: : ※ 引述《Yaowei (成就你的大事)》之銘言: : : while(<LINE>){ : : s/(\w+)/$w{lc($1)}++/eg; : : END{print $w{$_}," $_\n" foreach (sort keys %w);} : : } : : 其中 為什麼使用END呢? : : 發現如果將END拿掉的話,則會跑很多次出來 : : 而若有END的話 ,則是只會出現一次結果? : : 先謝過各位囉^^ : 雖然我不知道它為什麼要放在那裡 ... : 但是 : BEGIN{ blahblah... } : 這個 block 會在程式開始時先執行 : END{ blahblah } : 同樣的 結束時執行 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.96.202
reizarc:BEGIN 和 END 沒有相依 可以單獨用 04/02 23:09
reizarc:用 END 就是結束的時候執行一次阿 04/02 23:10
reizarc:我是想說通常會擺外面 不會放在那種地方 04/02 23:11
reizarc:喔 上一篇只是講到 END 就順便提一下 BEGIN 啦 ... 04/02 23:14