Perl::Critic

Last updated
Perl::Critic
Repository https://github.com/Perl-Critic/Perl-Critic/
Type static code analysis system for the Perl programming language
Website http://perlcritic.com

Perl::Critic is a static code analysis system for the Perl programming language. Perl::Critic is available as a source-code distribution on CPAN. It comes with a commandline tool, perlcritic, which can check Perl source code files and report on the code quality therein. Perl::Critic has an extensible architecture that allows the programmer to choose from many "policies" which enforce different Perl programming styles and tastes. The default policy is largely based on the recommendations in the book Perl Best Practices by Damian Conway.

Static program analysis is the analysis of computer software that is performed without actually executing programs, in contrast with dynamic analysis, which is analysis performed on programs while they are executing. In most cases the analysis is performed on some version of the source code, and in the other cases, some form of the object code.

Perl interpreted programming language

Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" usually refers to Perl 5, but it may also refer to its redesigned "sister language", Perl 6.

Programming language Language designed to communicate instructions to a machine

A programming language is a formal language, which comprises a set of instructions that produce various kinds of output. Programming languages are used in computer programming to implement algorithms.

Perl::Critic is based on the PPI parsing library. For safety, PPI does not execute any code while parsing, unlike the Perl compiler, so it is a close approximation of the real parser rather than an exact representation.

Some new alternatives include Perl::Lint and B::Lint.

Related Research Articles

The Comprehensive Perl Archive Network (CPAN) is a repository of over 250,000 software modules and accompanying documentation for 39,000 distributions, written in the Perl programming language by over 12,000 contributors. CPAN can denote either the archive network itself, or the Perl program that acts as an interface to the network and as an automated software installer. Most software on CPAN is free and open source software. CPAN was conceived in 1993 and active online since October 1995. It is based on the CTAN model and began as a place to unify the structure of scattered Perl archives.

In computer science, lexical analysis, lexing or tokenization is the process of converting a sequence of characters into a sequence of tokens. A program that performs lexical analysis may be termed a lexer, tokenizer, or scanner, though scanner is also a term for the first stage of a lexer. A lexer is generally combined with a parser, which together analyze the syntax of programming languages, web pages, and so forth.

In computing, the Perl DBI offers a standardized way for programmers using the Perl programming language to embed database communication within their programs. The latest DBI module for Perl from CPAN can run on a range of operating systems.

A Perl module is a discrete component of software for the Perl programming language. Technically, it is a particular set of conventions for using Perl's package mechanism that has become universally adopted.

The PHP Extension and Application Repository, or PEAR, is a repository of PHP software code. Stig S. Bakken founded the PEAR project in 1999 to promote the re-use of code that performs common functions. The project seeks to provide a structured library of code, maintain a system for distributing code and for managing code packages, and promote a standard coding style. Though community-driven, the PEAR project has a PEAR Group which serves as the governing body and takes care of administrative tasks. Each PEAR code package comprises an independent project under the PEAR umbrella. It has its own development team, versioning-control and documentation.

Plain Old Documentation (pod) is a lightweight markup language used to document the Perl programming language.

PerlMonks is a community website covering all aspects of Perl programming and other related topics such as web applications and system administration. It is often referred to by users as 'The Monastery'. The name PerlMonks, and the general style of the website, is designed to both humorously reflect the almost religious zeal that programmers sometimes have for their favorite language, and also to engender an atmosphere of calm reflection and consideration for other users.

Pugs is a compiler and interpreter for the Perl 6 programming language, started on February 1, 2005, by Audrey Tang.

The Perl Object Environment or POE is a library of Perl modules written in the Perl programming language by Rocco Caputo et al.

Catalyst (software) open source software

Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by such frameworks as Ruby on Rails, Maypole, and Spring.

Syntax (programming languages) in programming languages

In computer science, the syntax of a computer language is the set of rules that defines the combinations of symbols that are considered to be a correctly structured document or fragment in that language. This applies both to programming languages, where the document represents source code, and markup languages, where the document represents data. The syntax of a language defines its surface form. Text-based computer languages are based on sequences of characters, while visual programming languages are based on the spatial layout and connections between symbols. Documents that are syntactically invalid are said to have a syntax error.

Effective Perl Programming

Effective Perl Programming, sometimes known as the Shiny Ball Book by Perl programmers, is an intermediate to advanced text by Joseph N. Hall covering the Perl programming language. Randal L. Schwartz contributed a foreword and technical editing.

v6 is a module for the Perl programming language which runs under Perl version 5, and transforms Perl 6 code into Perl 5 code on the fly. To quote the release notes:

HTML::Mason, or Mason for short, is a web application framework written in Perl. It is distributed on CPAN.

Sean Michael Burke is a Perl programmer, author, and linguist. He was a columnist for The Perl Journal from 1998 and has written several dozen Perl modules for CPAN, as well as books for O'Reilly Media.

Padre (software) software development platform

Padre is a multi-language software development platform comprising an IDE and a plug-in system to extend it. It is written primarily in Perl and is used to develop applications in this language.

Adam Kennedy (programmer) Australian computer programmer

Adam Kennedy is an Australian Perl programmer, and one of several CPAN administrators. Under his CPAN author id of ADAMK, he is the maintainer of over 200 module distributions on CPAN, which places him at the top of the CPAN contribution leaderboard. Kennedy is the first maintainer of more than 200 CPAN modules, many of which he has adopted from other authors and included in his Open Repository, which is available for use by any registered CPAN author. He is a frequent presenter at open source conferences such as OSDC, OSCON, and YAPC as well as the Perl QA hackathons.

Mojolicious is a real-time web application framework, written by Sebastian Riedel, creator of the web application framework Catalyst. Licensed as free software under the Artistic License v 2.0, it is written in the Perl programming language, and is designed for use in both simple and complex web applications, based on Riedel's previous experience developing Catalyst. Documentation for the framework was partly funded by a grant from The Perl Foundation.

The following outline is provided as an overview of and topical guide to the Perl programming language: