如何自动整理Perl源代码?

时间:2010-10-16 08:03:15

标签: perl autoformatting perl-tidy

我公司的一只猫走过键盘,留下了有效的1000多行可执行Perl代码供我维护。

感谢Perl的TMTOWTDI理念,我发现自己正在搜索Google以了解她所生成的每一行代码。

为了增加我的痛苦,代码没有缩进,并且在一行中发现两个语句频繁出现,无法确定循环是外部还是内部。

如何自动将此Perl代码置于健全状态?是的,我打赌会有一些CPAN模块可以做到这一点。一些外部工具怎么样?有线索吗?

5 个答案:

答案 0 :(得分:23)

Perl::Tidy可以做到这一点,还有更多。它通常通过它安装的perltidy可执行文件使用。

答案 1 :(得分: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/上更改其他选项,具体取决于您的平台和品味!

答案 2 :(得分:6)

以下是如何将perltidy与非默认行为一起使用的几个示例:

  • 启用cuddled-elses(例如} else {),将所有.pl文件的行长限制为300个字符

    $ 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
    

答案 3 :(得分:1)

与大多数事情一样,如果您search CPAN,您的答案要比登录Stack Overflow时更快。 :)

在这种情况下,正如其他人已经提到的那样Perl::Tidy。我们在 Effective Perl Programming 中也有一些更长的建议。

答案 4 :(得分:0)

您还可以使用在线工具http://www.cleancss.com/perl-beautify/