作者Yaowei (成就你的大事)
看板perl
標題Re: [問題] 請教程式內容?
時間Mon Apr 2 23:01:14 2007
全部的程式碼如下:
#!/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