Re: [問題] foreach if in one line
※ 引述《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
05/18 14:26, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章