我只是在配置 Perl::Tidy 以符合我的偏好。我只剩下一个问题找不到解决方法。
示例脚本:
#!/usr/bin/perl
# | | | | | < "|" indicates first five "tabs" (1 tab 4 spaces).
use strict; # Enable strict programming mode.
use warnings; # Enable Perl warnings.
use utf8; # This is an UTF-8 encoded script.
1;
Perltidyrc:
# Perl Best Practices (plus errata) .perltidyrc file
-l=76 # Max line width is 76 cols
-i=4 # Indent level is 4 cols
-ci=4 # Continuation indent is 4 cols
-et=4 # 1 tab represent 4 cols
-st # Output to STDOUT
-se # Errors to STDERR
-vt=2 # Maximal vertical tightness
-cti=0 # No extra indentation for closing brackets
-pt=0 # Medium parenthesis tightness
-bt=1 # Medium brace tightness
-sbt=1 # Medium square bracket tightness
-bbt=1 # Medium block brace tightness
-nsfs # No space before semicolons
-nolq # Don't outdent long quoted strings
-wbb="% + - * / x != == >= <= =~ < > | & **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x="
# Break before all operators
# extras/overrides/deviations from PBP
#--maximum-line-length=100 # be slightly more generous
--warning-output # Show warnings
--maximum-consecutive-blank-lines=2 # default is 1
--nohanging-side-comments # troublesome for commented out code
-isbc # block comments may only be indented if they have some space characters before the #
# for the up-tight folk :)
-pt=2 # High parenthesis tightness
-bt=2 # High brace tightness
-sbt=2 # High square bracket tightness
结果:
#!/usr/bin/perl
# | | | | | < "|" indicates first five "tabs" (1 tab 4 spaces).
use strict; # Enable strict programming mode.
use warnings; # Enable Perl warnings.
use utf8; # This is an UTF-8 encoded script.
1;
如您所见,有一个前导空格导致"#"与第四个制表符不匹配。
如何删除此前导空格?
Perltidy只能更改perl代码,因为它知道perl代码的含义。注释可以包含完全任意的数据,因此无法触及它。所以,这种事情你必须自己解决。