2010-10-16 65 views
15

我公司的一隻貓走過了一個鍵盤,並留下了一行有效的1000多行可執行Perl代碼供我維護。如何自動整理Perl源代碼?

感謝Perl的TMTOWTDI理念,我發現自己正在搜索谷歌來理解她製作的每一行代碼。

要添加到我的痛苦中,代碼不會縮進,並且在一行中發現兩個語句頻繁出現,無法確定一個循環是外部還是內部。

我該如何自動將這個Perl代碼搞清楚?是的,我敢打賭,會有一些CPAN模塊可以做到這一點。如何一些外部工具?任何線索?

+0

-1爲鬧鬧 – MkV 2010-10-16 08:56:44

+1

@MkV傷害 – 2010-10-16 09:05:26

+5

+1爲鬧事:) – ttvd 2010-10-16 13:22:19

回答

22

Perl::Tidy可以做到這一點,以及更多。它通常通過它安裝的可執行文件perltidy使用。

6

Perl Tidy是一個非常有用的工具。它配備了一系列令人信服的選項。
有一個在http://perltidy.sourceforge.net/http://perltidy.sourceforge.net/tutorial.html

例如-i=8一些指導會取代的空格數縮進(默認值= 4)和-bl把括號在新行:

if ($something) 
{ 
    print "....."; 
} 

我建議玩代碼的副本並查看您最喜歡的選項。

您可以從CPAN安裝它,或根據您的平臺和品味在http://perltidy.sourceforge.net/上更改其他選項!

6

下面是如何使用perltidy使用非默認行爲的幾個例子:

  • 啓用擁抱,別人的(如} else {),限行長度超過300個字符的所有.pl文件

    $ perltidy -ce -l=300 *.pl 
    
  • 維護老逗號斷點,在script.pl凍結現有的空格

    $ perltidy -boc -fws script.pl 
    
  • 備份腳本,然後修改script1.pl,script2.pl就地

    $ perltidy -b script1.pl script2.pl 
    
  • 「模糊處理」腳本通過剝離它儘可能多的空白儘可能的。

    $ perltidy --mangle scipt.pl 
    
1

與大多數事情一樣,如果你search CPAN,你有你的答案的速度比它需要你登錄到堆棧溢出。 :)

在這種情況下,它是Perl::Tidy其他人已經提到過。我們在有效的Perl編程也有一些關於這方面的建議。