作者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
1F:推 reizarc:BEGIN 和 END 没有相依 可以单独用 04/02 23:09
2F:→ reizarc:用 END 就是结束的时候执行一次阿 04/02 23:10
3F:→ reizarc:我是想说通常会摆外面 不会放在那种地方 04/02 23:11
4F:→ reizarc:喔 上一篇只是讲到 END 就顺便提一下 BEGIN 啦 ... 04/02 23:14