[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 編程技術 > Perl > 正文
單行代碼的Perl 程序
本文出自:http://www.freelamp.com 作者: 徐永久(albertxu@bigfoot.com) (2001-08-27 12:00:00)
精簡的代碼,雖然可讀性不好,但是絕對高效,發揮才思。
一些不同凡響的Unix狂的一個業余愛好就是研究怎樣把程序壓縮到單行來完成。那些精通Perl 的程序員
能很好地做到這一點。例如一個測試素數的程序:

perl -le 'print "PRIME" if (1 x shift) !~ /^(11+)\1+$/' 19

Abigail@fnx.com 貢獻了這段代碼放在Perl Journal 的 
http://www.itknowledge.com/tpj/one-liners01.html. 你可以把19替換為你想要的最一個數字。

Perl 的功能不僅強大而且簡潔。 然而,即便如此, 很少的Perl 程序員的代碼有如此緊湊。許多人樂
寫比較鬆散並且有較高可讀性的代碼。

其實,單行代碼不僅僅光是証明你是一位緊湊代碼編寫人員,而且它是十分有用的。單行的代碼可以在命
令行處理得更快更靈活。下面是一個十分方便的替換命令:

perl -p -i -e 's/this/that/g' filename

它把指定文件中的字符串 *this* 替換為 *that*。

你可以把這條命令放入howto 文件,這條命令很好記,參數為"pie",就是餡餅了,而替換命令就和sed 的一樣。

參數含義:
p 打印
i 當場編輯
e 執行命令

下面這條命令:

perl -p -i -e 's/'

.. 把文件的回車去掉,把DOS 格式的文件轉化為Unix 格式。

和下面這條命令一樣。

tr -d "\015"

另外一個“單行代碼”的用處是測試你對語言的理解。為了寫一條十分簡潔緊湊的代碼,你或許不得不查看
一些你不是常用的語法。
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章

======
 

★  樊強制作 歡迎分享  ★