Understanding Perl Formatting & Perl::Tidy Conventions
Perl’s design philosophy—"There's more than one way to do it" (TMTOWTDI)—provides unparalleled expressive freedom. However, unformatted Perl quickly turns into dense, write-only scripts due to postfixed conditionals, regex substitutions, type sigils ($, @, %), and nested anonymous hash references. Applying standard 4-space indentation based on Perl::Tidy transforms legacy codebases into maintainable, readable enterprise software.
Standard 4-Space Indentation
The Perl community standardizes on 4 spaces per nesting level for subroutine definitions, loop blocks, and package namespaces without hard tab characters.
POD Documentation Handling
Plain Old Documentation (POD) directives like =head1 and =cut start at the very first column. A proper formatter protects POD blocks from unintended indentation drift.
Perl Style Guidelines: Perl::Tidy Standards vs. Unformatted Code
| Construct | Unformatted / Irregular | Beautified Perl::Tidy Standard | Formatting Rule |
|---|---|---|---|
| Subroutine Definition | sub calculate_total{ my ($val)=@_; return $val * 2; } |
sub calculate_total { my ($val) = @_; return $val * 2; } |
Space before opening brace; 4-space subroutine body. |
| Hash Literal Reference | my $config={ host => 'localhost', port => 3306 }; |
my $config = { host => 'localhost', port => 3306 }; |
Clean 4-space indent for hash key-value pairs. |
| Control Structure | if ($status eq 'OK') { print "Ready"; } |
if ($status eq 'OK') { print "Ready\n"; } |
Opening braces ({) stay on the condition line (K&R style). |
Frequently Asked Questions
What indentation style does this Perl formatter follow?
By default, it follows standard Perl community conventions and Perl::Tidy standards, utilizing 4 spaces per indentation level without hard tabs.
Does it preserve Plain Old Documentation (POD) blocks and regex patterns?
Yes. It detects POD documentation blocks (=pod ... =cut) and multiline strings, preserving their internal content while formatting the surrounding Perl code blocks.
Is my proprietary Perl source code sent to a remote server?
No. The formatting engine operates 100% locally in your web browser using client-side JavaScript lexical tokenization. Zero code is sent over the network.