我公司的一只猫走过键盘,留下了 1000 多行有效的可执行 Perl 代码供我维护。
多亏了 Perl 的 TMTOWTDI 哲学,我发现自己正在搜索 Google 以了解她生成的每一行代码。
为了增加我的痛苦,代码没有缩进,并且发现两条语句经常出现在一行中,无法确定循环是外循环还是内循环。
我怎样才能自动使这个 Perl 代码保持理智?是的,我打赌会有一些 CPAN 模块可以做到这一点。一些外部工具怎么样?有什么线索吗?
我公司的一只猫走过键盘,留下了 1000 多行有效的可执行 Perl 代码供我维护。
多亏了 Perl 的 TMTOWTDI 哲学,我发现自己正在搜索 Google 以了解她生成的每一行代码。
为了增加我的痛苦,代码没有缩进,并且发现两条语句经常出现在一行中,无法确定循环是外循环还是内循环。
我怎样才能自动使这个 Perl 代码保持理智?是的,我打赌会有一些 CPAN 模块可以做到这一点。一些外部工具怎么样?有什么线索吗?
Perl::Tidy
可以做到这一点,还有更多。它通常通过perltidy
它安装的可执行文件来使用。
Perl Tidy 是一个非常有用的实用程序。它带有一系列令人讨厌的选项。在http://perltidy.sourceforge.net/和http://perltidy.sourceforge.net/tutorial.html
有一些指导
例如-i=8
覆盖缩进的空格数(默认= 4) -bl
并将大括号放在新行上:
if ( $something )
{
print ".....";
}
我建议在代码副本上玩,看看你最喜欢哪个选项。
您可以从 CPAN 安装它,也可以在http://perltidy.sourceforge.net/上安装其他选项,具体取决于您的平台和口味!
以下是一些如何使用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
与大多数事情一样,如果您搜索 CPAN,您会比登录 Stack Overflow 更快地获得答案。:)
在这种情况下,正如其他人已经提到的那样,它是Perl::Tidy 。我们在Effective Perl Programming中对此也有一些更长的建议。
您也可以使用在线工具http://www.cleancss.com/perl-beautify/。