1

假设我有一些看起来像这样的 Perl 代码

      use Data::Dump q[pp];
  sub something{
      return 2 + 2;
  }

我希望它被 perltidy 格式化为

use Data::Dump q[pp];
sub something{
    return 2 + 2;
}   

也就是说,所有前导空格都被消除了,所有行都左对齐,但随后应用了缩进规则。我已经尝试过-dws,但这没有用,其他选项似乎都没有做任何事情。这可能吗?

4

1 回答 1

1

如图所示,这是不可能的。

一些额外的实验表明,只要在文件开头至少有一行(可以包含几乎任何内容)缩进少于四个空格,perltidy 就会像原始问题中所希望的那样缩进。

这种特定示例的解决方案是在 Makefile 中包含预处理步骤,该步骤在运行 perltidy 之前简单地消除所有空白行和剩余空间。这解决了问题。

sed -i -e 's/^[ \t]*//' file.pl
sed -i -e '/./!d' file.pl
perltidy file.pl
于 2021-10-13T12:48:44.063 回答