作者AntaresStar ()
看板Perl
標題Re: [問題] 點點(..)運算子兩問
時間Tue Oct 29 00:18:41 2013
回到原本的問題 自問自答一下 XD
改成這樣
$arr=[0,1,2,3,4,5,6,7];
while(<DATA>) {
print $arr->[3..5];
}
__DATA__
A
B
C
D
E
F
G
會印出0012300
於是可以發現在->[]裡的..確實被當成flip-flop
而且還可以看到flip-flop為true的時候 實際上值會從1開始一直++
※ 引述《CindyLinz (Cindy Wang)》之銘言:
: ※ 引述《CindyLinz (Cindy Wang)》之銘言:
: : --
: : ◆ From: 112.121.80.249
: : 推 cutekid:推(Y),長知識 10/28 16:06
: : → cutekid:請問「跨越函數呼叫」那邊有例子嗎?不是很瞭解 ^_^ 10/28 16:06
: 就這樣的意思呀~
: sub processLine {
: if( 3 .. 5 ) {
: print $_;
: }
: }
: while(<>){
: processLine();
: }
: processLine 裡面的 3 .. 5 不會隨著進出 processLine 而重置~
: 用在這邊是方便啦, 只是這種隱藏地永久存在的狀態是比較危險的東西 :Q
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.64.208
推 KaryuuIssen:能說明一下為什麼會印出0012300嗎? 10/29 02:42
→ KaryuuIssen:只知道DATA有7行所以會印出7個數字... 10/29 02:42
→ AntaresStar:下一篇有解釋了 10/29 10:11
推 cutekid:推實驗(Y) 10/29 11:11