Re: [請益] replace 可以替換指定位置的字元嗎?

看板Perl作者 (Analog Engineer)時間15年前 (2010/04/15 13:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《CindyLinz (尹兒)》之銘言: : 閱讀以下內容可能對心理及生理造成深遠及不可恢復之影響, : 建議你先做好心靈改革,事前請記得要戴上護眼罩, : 事後亦要用大量清水洗眼,否則有可能......一概不負責! : (防雷頁, 現在想離開還得及..) : 有三點邪惡版: : $a = '4321'; : $_ = 23 for( substr($a, 1, 2) ); : 這個的結果是 4231 for( substr($a, 1, 2) ) 這行把 $_ 設定為 $a 裡第1個字(從0開始算)開始2 個字的別名(Alias). 所以設定為23就改成4231了. : 有四點邪惡版: : $a = '4321'; : for( substr($a, 1, 2) ) { : $a = '47531'; : $_ -= 73; : } : 這個的結果仍然是 4231 一樣.for( substr($a, 1, 2) ) 這行把 $_ 設定為 $a 裡第1個字(從0開始算) 開始2個字的別名(Alias). 把$a改成47531並不會改變這個別名. 所以此時$_為'75' 把它減73後就變成2了. $a就1變成 '4' '2' '31' => '4231' 了. : 有五點邪惡版: : $a = '4321'; : for( substr($a, 1, 2) ) { : $_ += 9999; : $a = '46789031'; : $_ -= 67888; : } : 這個的結果依舊是 4231 原理同上, 自己推演一下就知道. 這些把戲蠻有趣的, 在 effective perl 這本書裡還有很多. 對Hacker來說,有些慣用法蠻常被使用的. 有些可以省下很多打字時間, 但對看不懂而要維護程式的人來說就是夢靨了. 但我個人認為, Perl 本質上是一個非常好的語言, 程式好寫, 速度快, 但近年來 退流行可能也是因為這些可怕的把戲, 畢竟對新人來說, 太多有字天書會造成維 護上的麻煩, 更可能菜鳥改一改產生奇怪的問題..... 要不然 perl 不用編譯, 又有資源回收功能, 而且在 Script 裡面應該是第一快 的, 怎麼會退流行這個快. 像 CGI 程式早年都是 perl 寫的, PHP 有的功能 perl都有, 而且執行得快的多 , PHP 會後來居上, 應該是程式碼維護性上的關係. 建議寫 perl 的人, 看看 Perl Best Practices, 返璞歸真一下, 盡量提昇程式 碼的可維護性, 畢竟你建立的系統總不希望只有你才能維護, 假如你有更大的舞 台可以發揮, 但找人來維護你建立的系統總是會有問題, 那你只好永遠被綁在那 裡了. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.195.213
文章代碼(AID): #1BngESVR (Perl)
文章代碼(AID): #1BngESVR (Perl)