Main code has high complexity score (412) at line 1, column 1.  Consider refactoring.  (Severity: 3)
"%h1" is declared but not used at line 846, column 1.  Unused variables clutter code and make it harder to read.  (Severity: 3)
"%h2" is declared but not used at line 846, column 1.  Unused variables clutter code and make it harder to read.  (Severity: 3)
Regular expression without "/x" flag at line 1579, column 47.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 1588, column 47.  See page 236 of PBP.  (Severity: 3)
Code structure is deeply nested at line 2151, column 41.  Consider refactoring.  (Severity: 3)
Regular expression without "/x" flag at line 3012, column 23.  See page 236 of PBP.  (Severity: 3)
Too many arguments at line 4015, column 1.  See page 182 of PBP.  (Severity: 3)
Too many arguments at line 4034, column 1.  See page 182 of PBP.  (Severity: 3)
Too many arguments at line 4055, column 1.  See page 182 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 4213, column 23.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 4737, column 42.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 4738, column 33.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 4747, column 42.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 4764, column 42.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 4793, column 50.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 4898, column 64.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 4899, column 64.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 4902, column 56.  See page 236 of PBP.  (Severity: 3)
Too many arguments at line 4930, column 1.  See page 182 of PBP.  (Severity: 3)
Subroutine "authenticate_imap" with high complexity score (23) at line 5012, column 1.  Consider refactoring.  (Severity: 3)
Too many arguments at line 5012, column 1.  See page 182 of PBP.  (Severity: 3)
Too many arguments at line 5164, column 1.  See page 182 of PBP.  (Severity: 3)
Use "local $/ = undef" or Path::Tiny instead of joined readline at line 5261, column 43.  See page 213 of PBP.  (Severity: 3)
Backtick operator used at line 5279, column 20.  Use IPC::Open3 instead.  (Severity: 3)
Regular expression without "/x" flag at line 5417, column 26.  See page 236 of PBP.  (Severity: 3)
Expression form of "eval" at line 6607, column 27.  See page 161 of PBP.  (Severity: 5)
Single-quote used as quote-like operator delimiter at line 6757, column 24.  Using quotes as delimiters for quote-like operators obfuscates code.  (Severity: 3)
Expression form of "eval" at line 6848, column 27.  See page 161 of PBP.  (Severity: 5)
Subroutine "copy_message" with high complexity score (22) at line 7279, column 1.  Consider refactoring.  (Severity: 3)
Too many arguments at line 7279, column 1.  See page 182 of PBP.  (Severity: 3)
Too many arguments at line 7353, column 1.  See page 182 of PBP.  (Severity: 3)
Subroutine "message_for_host2" with high complexity score (23) at line 7387, column 1.  Consider refactoring.  (Severity: 3)
Too many arguments at line 7387, column 1.  See page 182 of PBP.  (Severity: 3)
Reused variable name in lexical scope: $uid1 at line 7617, column 9.  Invent unique variable names.  (Severity: 3)
Reused variable name in lexical scope: $uid2 at line 7617, column 9.  Invent unique variable names.  (Severity: 3)
Too many arguments at line 7813, column 1.  See page 182 of PBP.  (Severity: 3)
Too many arguments at line 8052, column 1.  See page 182 of PBP.  (Severity: 3)
Expression form of "eval" at line 9405, column 27.  See page 161 of PBP.  (Severity: 5)
Expression form of "eval" at line 9646, column 27.  See page 161 of PBP.  (Severity: 5)
Too many arguments at line 9957, column 1.  See page 182 of PBP.  (Severity: 3)
Backtick operator used at line 10256, column 17.  Use IPC::Open3 instead.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 10345, column 32.  See page 261 of PBP.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 10349, column 32.  See page 261 of PBP.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 10368, column 33.  See page 261 of PBP.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 10379, column 24.  See page 261 of PBP.  (Severity: 3)
Cascading if-elsif chain at line 10643, column 2.  See pages 117,118 of PBP.  (Severity: 3)
Return value of eval not tested at line 10797, column 3.  You can't depend upon the value of $@/$EVAL_ERROR to tell whether an eval failed.  (Severity: 3)
Backtick operator used at line 10798, column 15.  Use IPC::Open3 instead.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 10807, column 16.  See page 261 of PBP.  (Severity: 3)
Return value of eval not tested at line 10820, column 3.  You can't depend upon the value of $@/$EVAL_ERROR to tell whether an eval failed.  (Severity: 3)
Backtick operator used at line 10821, column 15.  Use IPC::Open3 instead.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 10830, column 16.  See page 261 of PBP.  (Severity: 3)
Return value of eval not tested at line 10844, column 3.  You can't depend upon the value of $@/$EVAL_ERROR to tell whether an eval failed.  (Severity: 3)
Capture variable used outside conditional at line 10855, column 12.  See page 253 of PBP.  (Severity: 3)
Backtick operator used at line 11000, column 26.  Use IPC::Open3 instead.  (Severity: 3)
Backtick operator used at line 11029, column 18.  Use IPC::Open3 instead.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 11241, column 19.  See page 261 of PBP.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 11267, column 19.  See page 261 of PBP.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 11308, column 19.  See page 261 of PBP.  (Severity: 3)
Split long regexps into smaller qr// chunks at line 11320, column 19.  See page 261 of PBP.  (Severity: 3)
Expression form of "eval" at line 11677, column 56.  See page 161 of PBP.  (Severity: 5)
Expression form of "eval" at line 11681, column 58.  See page 161 of PBP.  (Severity: 5)
Split long regexps into smaller qr// chunks at line 12147, column 20.  See page 261 of PBP.  (Severity: 3)
Ambiguously named variable "last" at line 12550, column 2.  See page 48 of PBP.  (Severity: 3)
Subroutine "cleanup_mess_from_tests" does not end with "return" at line 12604, column 1.  See page 197 of PBP.  (Severity: 4)
Reused variable name in lexical scope: $err at line 12903, column 3.  Invent unique variable names.  (Severity: 3)
Reused variable name in lexical scope: $err at line 12973, column 3.  Invent unique variable names.  (Severity: 3)
"warn" used instead of "carp" at line 13431, column 25.  See page 283 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 13448, column 40.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 13450, column 23.  See page 236 of PBP.  (Severity: 3)
Regular expression without "/x" flag at line 13451, column 23.  See page 236 of PBP.  (Severity: 3)
Literal line breaks in a string at line 13477, column 19.  See pages 60,61 of PBP.  (Severity: 3)
Subroutine "myGetOptions" with high complexity score (29) at line 13513, column 1.  Consider refactoring.  (Severity: 3)
Capture variable used outside conditional at line 13545, column 41.  See page 253 of PBP.  (Severity: 3)

     1 files.
   437 subroutines/methods.
14,225 statements.

14,379 lines, consisting of:
     2,697 blank lines.
       844 comment lines.
         0 data lines.
    10,160 lines of Perl code.
       678 lines of POD.

Average McCabe score of subroutines was 4.00.

75 violations.
Violations per file was 75.000.
Violations per statement was 0.005.
Violations per line of code was 0.005.

 6 severity 5 violations.
 1 severity 4 violations.
68 severity 3 violations.

 6 violations of BuiltinFunctions::ProhibitStringyEval.
 1 violations of ControlStructures::ProhibitCascadingIfElse.
 1 violations of ControlStructures::ProhibitDeepNests.
 1 violations of ErrorHandling::RequireCarping.
 3 violations of ErrorHandling::RequireCheckingReturnValueOfEval.
 6 violations of InputOutput::ProhibitBacktickOperators.
 1 violations of InputOutput::ProhibitJoinedReadline.
 1 violations of Modules::ProhibitExcessMainComplexity.
 1 violations of NamingConventions::ProhibitAmbiguousNames.
 2 violations of RegularExpressions::ProhibitCaptureWithoutTest.
11 violations of RegularExpressions::ProhibitComplexRegexes.
16 violations of RegularExpressions::RequireExtendedFormatting.
 4 violations of Subroutines::ProhibitExcessComplexity.
12 violations of Subroutines::ProhibitManyArgs.
 1 violations of Subroutines::RequireFinalReturn.
 1 violations of ValuesAndExpressions::ProhibitImplicitNewlines.
 1 violations of ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters.
 4 violations of Variables::ProhibitReusedNames.
 2 violations of Variables::ProhibitUnusedVariables.
