perltidy 可以在执行缩进规则之前删除所有前导空格吗?

Can perltidy remove all leading whitespaces before performing indent rules?

假设我有一些如下所示的 Perl 代码

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

我希望它被 perltidy 格式化为

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

也就是说,消除了所有前导空格并且所有行都左对齐,但随后应用了缩进规则。我试过 -dws 但这没有用,而且其他选项似乎都不起作用。这可能吗?

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

一些额外的实验表明,只要在文件开头有至少一行(几乎可以包含任何内容)缩进少于四 spaces,perltidy 就会按预期缩进对于原始问题。

针对此类特定示例的解决方案是在 Makefile 中包含预处理步骤,该步骤简单地消除了所有空行并在 运行 perltidy 之前留下了 space。这解决了问题。

sed -i -e 's/^[ \t]*//' file.pl
sed -i -e '/./!d' file.pl
perltidy file.pl