Main code has high complexity score (392) at line 1, column 1. Consider refactoring. (Severity: 3) Regular expression without "/x" flag at line 1483, column 47. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 1492, column 47. See page 236 of PBP. (Severity: 3) Code structure is deeply nested at line 2021, column 41. Consider refactoring. (Severity: 3) Too many arguments at line 3338, column 1. See page 182 of PBP. (Severity: 3) Too many arguments at line 3356, column 1. See page 182 of PBP. (Severity: 3) Too many arguments at line 3366, column 1. See page 182 of PBP. (Severity: 3) Warnings disabled at line 3441, column 9. See page 431 of PBP. (Severity: 4) Warnings disabled at line 3442, column 9. See page 431 of PBP. (Severity: 4) Warnings disabled at line 3474, column 9. See page 431 of PBP. (Severity: 4) Warnings disabled at line 3475, column 9. See page 431 of PBP. (Severity: 4) Use "<>" or "" or a prompting module instead of "" at line 3623, column 24. See pages 216,220,221 of PBP. (Severity: 4) Regular expression without "/x" flag at line 3877, column 42. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 3878, column 33. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 3887, column 42. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 3898, column 42. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 3919, column 42. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 4009, column 64. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 4012, column 56. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 4013, column 56. See page 236 of PBP. (Severity: 3) Too many arguments at line 4040, column 1. See page 182 of PBP. (Severity: 3) Subroutine "authenticate_imap" with high complexity score (21) at line 4120, column 1. Consider refactoring. (Severity: 3) Too many arguments at line 4120, column 1. See page 182 of PBP. (Severity: 3) Too many arguments at line 4260, column 1. See page 182 of PBP. (Severity: 3) Use "local $/ = undef" or Path::Tiny instead of joined readline at line 4354, column 43. See page 213 of PBP. (Severity: 3) Backtick operator used at line 4372, column 20. Use IPC::Open3 instead. (Severity: 3) Expression form of "eval" at line 5413, column 27. See page 161 of PBP. (Severity: 5) Single-quote used as quote-like operator delimiter at line 5557, column 24. Using quotes as delimiters for quote-like operators obfuscates code. (Severity: 3) Expression form of "eval" at line 5658, column 27. See page 161 of PBP. (Severity: 5) Subroutine "copy_message" with high complexity score (25) at line 6036, column 1. Consider refactoring. (Severity: 3) Too many arguments at line 6036, column 1. See page 182 of PBP. (Severity: 3) Too many arguments at line 6120, column 1. See page 182 of PBP. (Severity: 3) Subroutine "message_for_host2" with high complexity score (27) at line 6153, column 1. Consider refactoring. (Severity: 3) Too many arguments at line 6153, column 1. See page 182 of PBP. (Severity: 3) Too many arguments at line 6472, column 1. See page 182 of PBP. (Severity: 3) Expression form of "eval" at line 7896, column 27. See page 161 of PBP. (Severity: 5) Expression form of "eval" at line 8135, column 27. See page 161 of PBP. (Severity: 5) Too many arguments at line 8398, column 1. See page 182 of PBP. (Severity: 3) Literal line breaks in a string at line 8660, column 1. See pages 60,61 of PBP. (Severity: 3) Backtick operator used at line 8684, column 17. Use IPC::Open3 instead. (Severity: 3) Split long regexps into smaller qr// chunks at line 8772, column 32. See page 261 of PBP. (Severity: 3) Split long regexps into smaller qr// chunks at line 8776, column 32. See page 261 of PBP. (Severity: 3) Split long regexps into smaller qr// chunks at line 8795, column 33. See page 261 of PBP. (Severity: 3) Split long regexps into smaller qr// chunks at line 8806, column 24. See page 261 of PBP. (Severity: 3) Reused variable name in lexical scope: $version at line 8982, column 9. Invent unique variable names. (Severity: 3) Backtick operator used at line 9047, column 17. Use IPC::Open3 instead. (Severity: 3) Return value of eval not tested at line 9139, 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 9140, column 15. Use IPC::Open3 instead. (Severity: 3) Split long regexps into smaller qr// chunks at line 9149, column 16. See page 261 of PBP. (Severity: 3) Return value of eval not tested at line 9162, 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 9173, column 12. See page 253 of PBP. (Severity: 3) Backtick operator used at line 9274, column 26. Use IPC::Open3 instead. (Severity: 3) Backtick operator used at line 9296, column 18. Use IPC::Open3 instead. (Severity: 3) Return value of eval not tested at line 9325, column 2. You can't depend upon the value of $@/$EVAL_ERROR to tell whether an eval failed. (Severity: 3) Split long regexps into smaller qr// chunks at line 9487, column 19. See page 261 of PBP. (Severity: 3) Split long regexps into smaller qr// chunks at line 9513, column 19. See page 261 of PBP. (Severity: 3) Split long regexps into smaller qr// chunks at line 9554, column 19. See page 261 of PBP. (Severity: 3) Split long regexps into smaller qr// chunks at line 9566, column 19. See page 261 of PBP. (Severity: 3) Hard tabs used at line 9748, column 84. See page 20 of PBP. (Severity: 3) Expression form of "eval" at line 9789, column 56. See page 161 of PBP. (Severity: 5) Expression form of "eval" at line 9793, column 58. See page 161 of PBP. (Severity: 5) Split long regexps into smaller qr// chunks at line 10248, column 20. See page 261 of PBP. (Severity: 3) Magic variable "*STDERR" should be assigned as "local" at line 10509, column 17. See pages 81,82 of PBP. (Severity: 4) One-argument "select" used at line 10510, column 9. See page 224 of PBP. (Severity: 4) Ambiguously named variable "last" at line 10529, column 2. See page 48 of PBP. (Severity: 3) Reused variable name in lexical scope: $err at line 10806, column 3. Invent unique variable names. (Severity: 3) Reused variable name in lexical scope: $err at line 10873, column 3. Invent unique variable names. (Severity: 3) Hard tabs used at line 10944, column 44. See page 20 of PBP. (Severity: 3) Close filehandles as soon as possible after opening them at line 11091, column 9. See page 209 of PBP. (Severity: 4) "warn" used instead of "carp" at line 11092, column 17. See page 283 of PBP. (Severity: 3) Regular expression without "/x" flag at line 11117, column 40. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 11119, column 23. See page 236 of PBP. (Severity: 3) Regular expression without "/x" flag at line 11120, column 23. See page 236 of PBP. (Severity: 3) Literal line breaks in a string at line 11137, column 9. See pages 60,61 of PBP. (Severity: 3) Subroutine "myGetOptions" with high complexity score (27) at line 11174, column 1. Consider refactoring. (Severity: 3) Capture variable used outside conditional at line 11201, column 32. See page 253 of PBP. (Severity: 3) 1 files. 367 subroutines/methods. 11,872 statements. 11,937 lines, consisting of: 2,225 blank lines. 764 comment lines. 0 data lines. 8,314 lines of Perl code. 634 lines of POD. Average McCabe score of subroutines was 4.10. 76 violations. Violations per file was 76.000. Violations per statement was 0.006. Violations per line of code was 0.006. 6 severity 5 violations. 8 severity 4 violations. 62 severity 3 violations. 6 violations of BuiltinFunctions::ProhibitStringyEval. 2 violations of CodeLayout::ProhibitHardTabs. 1 violations of ControlStructures::ProhibitDeepNests. 1 violations of ErrorHandling::RequireCarping. 3 violations of ErrorHandling::RequireCheckingReturnValueOfEval. 6 violations of InputOutput::ProhibitBacktickOperators. 1 violations of InputOutput::ProhibitExplicitStdin. 1 violations of InputOutput::ProhibitJoinedReadline. 1 violations of InputOutput::ProhibitOneArgSelect. 1 violations of InputOutput::RequireBriefOpen. 1 violations of Modules::ProhibitExcessMainComplexity. 1 violations of NamingConventions::ProhibitAmbiguousNames. 2 violations of RegularExpressions::ProhibitCaptureWithoutTest. 10 violations of RegularExpressions::ProhibitComplexRegexes. 13 violations of RegularExpressions::RequireExtendedFormatting. 4 violations of Subroutines::ProhibitExcessComplexity. 11 violations of Subroutines::ProhibitManyArgs. 4 violations of TestingAndDebugging::ProhibitNoWarnings. 2 violations of ValuesAndExpressions::ProhibitImplicitNewlines. 1 violations of ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters. 3 violations of Variables::ProhibitReusedNames. 1 violations of Variables::RequireLocalizedPunctuationVars.