Re: [問題] foreach if in one line

看板Perl作者 (Analog Engineer)時間14年前 (2010/05/18 13:49), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《dryman (dryman)》之銘言: : 請問有無可能將foreach和if判斷式寫在同一行呢? : 原始語意: : foreach (@arr){ : dosomething if expr; : } : 我試了 : dosomething if expr foreach @arr; : {dosomething if expr} foreach @arr; : 可是都失敗.. : 請問還有其他方法將if和foreach合併在一行嗎? 可以用 grep 篩選符合條件的再dosomething 不過你想把它們寫在一行的目的是什麼呢? 假如 dosomething 只有一行, 那把3行 (含結束大括號) 改成1行, 好像也沒少打多少字. 假如你認為改成一行程式會執行的比較快, 那你可能要失望了. Perl 雖然是 interpreter, 但它會先將程式 parse 成 P-code後再執行. 原始碼的長度 並不會影響其執行速度, 假如結果 P-code 一樣的話. P-Code 的清單請參考 perl 的 source code, 假如你以 -DDEBUGGING 編譯 perl, 就可以 再命令列加上 -Dx 印出語法樹, 這樣你就可以知道你的原始碼變成了哪些 P-code, 對分 析程式執行速度很有幫助. 假如你在意的是速度, 我個人建議你用 XS, 把程式改用 C/C++來寫, 以我的經驗來說, 一個 express parser 我改用 XS 後, 速度快了 16 倍, 這種改善幅度應該不是把程式碼 減掉幾行所能比的. -- Do not depend on others without effort... 當我年輕時,請教別人問題時常聽到上面那句話. 當時心裏偶而會有些小小抱怨. 當時間過去,我偶而會想到上面那句話, 心中十分感謝當初告訴我那句話的人. 當發現問題時,最有價值的不是問題的答案, 而是找到解決的方向,並在努力的過程裡具備解決問題的能力. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.232.29

05/18 14:26, , 1F
其實...只是想寫爽的啦XDDDD
05/18 14:26, 1F
文章代碼(AID): #1ByYfMG9 (Perl)
討論串 (同標題文章)
文章代碼(AID): #1ByYfMG9 (Perl)