Re: [問題] 請教程式內容?

看板Perl作者 (成就你的大事)時間18年前 (2007/04/02 23:01), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串3/3 (看更多)
全部的程式碼如下: #!/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

04/02 23:09, , 1F
BEGIN 和 END 沒有相依 可以單獨用
04/02 23:09, 1F

04/02 23:10, , 2F
用 END 就是結束的時候執行一次阿
04/02 23:10, 2F

04/02 23:11, , 3F
我是想說通常會擺外面 不會放在那種地方
04/02 23:11, 3F

04/02 23:14, , 4F
喔 上一篇只是講到 END 就順便提一下 BEGIN 啦 ...
04/02 23:14, 4F
文章代碼(AID): #164HhCOV (Perl)
討論串 (同標題文章)
文章代碼(AID): #164HhCOV (Perl)