【发布时间】:2021-10-11 23:09:57
【问题描述】:
假设我有一些看起来像这样的 Perl 代码
use Data::Dump q[pp];
sub something{
return 2 + 2;
}
我希望它被 perltidy 格式化为
use Data::Dump q[pp];
sub something{
return 2 + 2;
}
也就是说,所有前导空格都被消除了,所有行都左对齐,但随后应用了缩进规则。我试过-dws 但这没有用,其他选项似乎都没有做任何事情。这可能吗?
【问题讨论】:
-
总是可以将前导空格作为一个单独的步骤去除...
perl -pe 's/^\s+//' foo.pl | perltidy > foo_pretty.pl -
但这就是我得到的 perltidy 输出(除了
use和子例程之间的空行)... -
@Shawn 并且您的输入在所有行前都有前导空格?如果是这样,您使用的是什么
perltidy设置? -
这里也一样,如果 all 行有一些缩进,那么
perltidy不会触及它。但它做它的事,除此之外;我认为它没有理由触及整体缩进。我跳过了它的手册页,并没有找到任何选项。但是,如果任何一行的缩进为 0(如 shebang 行),那么它确实会调整整体缩进。所以......也许只是添加一(1)行?比如评论、时间戳等等。 -
不,除了缩进的 sub 主体之外没有前导空格。根本没有选择,或者只是
-dws。 (不过,我复制并粘贴到的模板 perl 文件确实有一个 shebang。)