16

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

多亏了 Perl 的 TMTOWTDI 哲学,我发现自己正在搜索 Google 以了解她生成的每一行代码。

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

我怎样才能自动使这个 Perl 代码保持理智?是的,我打赌会有一些 CPAN 模块可以做到这一点。一些外部工具怎么样?有什么线索吗?

4

5 回答 5

23

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

于 2010-10-16T08:12:56.927 回答
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/上安装其他选项,具体取决于您的平台和口味!

于 2010-10-16T08:31:25.757 回答
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
    
于 2010-10-16T09:57:09.720 回答
1

与大多数事情一样,如果您搜索 CPAN,您会比登录 Stack Overflow 更快地获得答案。:)

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

于 2010-10-16T19:12:40.373 回答
0

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

于 2016-05-02T08:17:14.957 回答