perlcritic
perlcritic documentation
- Version in MegaLinter: 1.150
- Visit Official Web Site
- See How to configure perlcritic rules
- See How to disable perlcritic rules in files
- See Index of problems detected by perlcritic
Configuration in MegaLinter
- Enable perlcritic by adding PERL_PERLCRITICin ENABLE_LINTERS variable
- Disable perlcritic by adding PERL_PERLCRITICin DISABLE_LINTERS variable
| Variable | Description | Default value | 
|---|---|---|
| PERL_PERLCRITIC_ARGUMENTS | User custom arguments to add in linter CLI call Ex: -s --foo "bar" | |
| PERL_PERLCRITIC_FILTER_REGEX_INCLUDE | Custom regex including filter Ex: (src\|lib) | Include every file | 
| PERL_PERLCRITIC_FILTER_REGEX_EXCLUDE | Custom regex excluding filter Ex: (test\|examples) | Exclude no file | 
| PERL_PERLCRITIC_CLI_LINT_MODE | Override default CLI lint mode - file: Calls the linter for each file- project: Call the linter from the root of the project | file | 
| PERL_PERLCRITIC_FILE_EXTENSIONS | Allowed file extensions. "*"matches any extension,""matches empty extension. Empty list excludes all filesEx: [".py", ""] | [".pl", ".pm", ".t", ""] | 
| PERL_PERLCRITIC_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files Ex: ["Dockerfile(-.+)?", "Jenkinsfile"] | Include every file | 
| PERL_PERLCRITIC_PRE_COMMANDS | List of bash commands to run before the linter | None | 
| PERL_PERLCRITIC_POST_COMMANDS | List of bash commands to run after the linter | None | 
| PERL_PERLCRITIC_DISABLE_ERRORS | Run linter but consider errors as warnings | false | 
| PERL_PERLCRITIC_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | 0 | 
| PERL_PERLCRITIC_CLI_EXECUTABLE | Override CLI executable | ['perlcritic'] | 
MegaLinter Flavours
This linter is available in the following flavours
| Flavor | Description | Embedded linters | Info | |
|---|---|---|---|---|
|  | all | Default MegaLinter Flavor | 113 | 
Behind the scenes
How are identified applicable files
- File extensions: .pl,.pm,.t, ``
- Detected file content (regex): #!/usr/bin/env perl,#!/usr/bin/perl
How the linting is performed
- perlcritic is called one time by identified file (fileCLI lint mode)
Example calls
perlcritic myfile.pl
Help content
Usage:
      perlcritic [-12345 | --brutal | --cruel | --harsh | --stern | --gentle]
                 [--severity number | name] [{-p | --profile} file | --noprofile]
                 [--top [ number ]] [--theme expression] [--include pattern]
                 [--exclude pattern] [{-s | --single-policy} pattern]
                 [--only | --noonly] [--profile-strictness {warn|fatal|quiet}]
                 [--force | --noforce] [--statistics] [--statistics-only]
                 [--count | -C] [--verbose {number | format}] [--allow-unsafe]
                 [--color | --nocolor] [--pager pager] [--quiet]
                 [--color-severity-highest color_specification]
                 [--color-severity-high color_specification]
                 [--color-severity-medium color_specification]
                 [--color-severity-low color_specification]
                 [--color-severity-lowest color_specification]
                 [--files-with-violations | -l]
                 [--files-without-violations | -L]
                 [--program-extensions file_name_extension]
                 {FILE | DIRECTORY | STDIN}
      perlcritic --profile-proto
      perlcritic { --list | --list-enabled | --list-themes | --doc pattern [...] }
      perlcritic { --help | --options | --man | --version }
Installation on mega-linter Docker image
- Dockerfile commands :
RUN curl --retry 5 --retry-delay 5 -sL https://cpanmin.us/ | perl - -nq --no-wget Perl::Critic
