2010-10-16 33 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编程也有一些关于这方面的建议。