如何使用 perltidy 格式化布尔运算符?

Joh*_*s-8 5 perl perl-tidy

据我所知,perltidy在代码格式化方面非常方便和有帮助。不过我还没有找到微调的方法perltidy。例如,我需要对&&||进行格式化,以便在它们之前和之后有两个空格。像这样:

$some && $x > 7;

我可以做吗?如果是这样,怎么办?

mob*_*mob 6

构建您自己的整洁脚本非常容易,PPI您可以在perltidy. 概念验证:

use PPI;
my $doc = PPI::Document->new($ARGV[0]);
for my $op (@{$doc->find('PPI::Token::Operator')}) {
    if ($op eq '&&' || $op eq '||') {
        $op->{content} = " $op ";
    }
}
print $doc;
Run Code Online (Sandbox Code Playgroud)

如果我们运行这个脚本本身,我们会得到:

$ perl je8tidy.pl je8tidy.pl
use PPI;
my $doc = PPI::Document->new($ARGV[0]);
for my $op (@{$doc->find('PPI::Token::Operator')}) {
    if ($op eq '&&'  ||  $op eq '||') {
        $op->{content} = " $op ";
    }
}
print $doc;
Run Code Online (Sandbox Code Playgroud)

它确实在第 4 行唯一的运算符周围插入了额外的空格||