The following
outline
Outline or outlining may refer to:
* Outline (list), a document summary, in hierarchical list format
* Code folding, a method of hiding or collapsing code or text to see content in outline form
* Outline drawing, a sketch depicting the outer edge ...
is provided as an overview of and topical guide to the Perl programming language:
Perl –
high-level
High-level and low-level, as technical terms, are used to classify, describe and point to specific goals of a systematic operation; and are applied in a wide range of contexts, such as, for instance, in domains as widely varied as computer scienc ...
,
general-purpose,
interpreted,
multi-paradigm
Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms.
Some paradigms are concerned mainly with implications for the execution model of the language, suc ...
,
dynamic programming language.
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
was originally developed by
Larry Wall in 1987 as a general-purpose
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
scripting language to make report processing easier.
Since then, it has undergone many changes and revisions and become widely popular amongst programmers. Larry Wall continues to oversee development of
Raku. Note that
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
and Raku are receiving ongoing development, therefore making Perl a family of programming languages. It stands for Practical Extraction and Reporting Language which processes data using pattern matching technique.
What ''type'' of thing is Perl?
* Perl can be described as all of the following ''types'' of things:
** Family of
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
s – a programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely. Both Perl and Raku are each considered a:
***
General-purpose programming language – programming language designed to be used for writing software in a wide variety of application domains.
***
High-level programming language
In computer science, a high-level programming language is a programming language with strong Abstraction (computer science), abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ...
– programming language with strong abstraction from the details of the computer. While low-level programming languages are very cryptic, a higher-level programming language may use natural language elements, be easier to use, making the process of developing a program simpler and more understandable with respect to a low-level language.
****
Interpreted language – programming language in which programs are 'indirectly' executed ("interpreted") by an interpreter program. This can be contrasted with a compiled language which is converted into machine code and then 'directly' executed by the host CPU.
*****
Scripting language
A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.
A scripting ...
– programming language that supports the writing of scripts, programs written for a software environment that automate the execution of tasks which could alternatively be executed one by one by a human operator.
******
Glue language
A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.
A scripting ...
– programming language (usually a scripting language) used for writing programs or scripts that activate other scripts and programs (thus "gluing" them together).
*****
Dynamic programming language – high-level programming language that executes many common behaviors while running that other languages might perform during compilation, if at all. These behaviors could include extension of the program, by adding new code, by extending objects and definitions, or by modifying the type system, all during program execution.
******
Dynamically typed programming language – A programming language is said to be dynamically typed when the majority of its type checking (for example numerical vs. non-numerical) is performed at run-time as opposed to at compile-time. Therefore, the type for a particular variable or value is not locked in. In dynamic typing values have types, but variables do not; that is, a variable can refer to a value of any type.
**
Free and open-source software
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
– software that is both free software and open source. It is liberally licensed to grant users the right to use, copy, study, change, and improve its design through the availability of its source code. Both Perl and Raku are free and open-source.
***
Free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
– software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients have the same rights under which it was obtained and that manufacturers of consumer products incorporating free software provide the software as source code. In addition to this, Perl is available for free (i.e., at no cost).
***
Open-source software
Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
– computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under an open-source license that permits users to study, change, improve and at times also to distribute the software. Open source software is very often developed in a public, collaborative manner. Perl is developed and supported by a large international community of volunteers.
Other names for Perl
*
Backronym
A backronym is an acronym formed from an already existing word by expanding its letters into the words of a phrase. Backronyms may be invented with either serious or humorous intent, or they may be a type of false etymology or folk etymology. The ...
s that describe Perl while treating it as an acronym:
** PERL = Practical Extraction and Report Language
** PERL = Pathologically Eclectic Rubbish Lister
* Other descriptions
** Duct tape for the Internet
** Swiss Army chainsaw of scripting languages
Aspects of Perl
Strengths of Perl
* Flexibility – perl is feature rich, and has borrowed from many other programming languages. This is reflected in the motto "
There's more than one way to do it". There are also many extension modules available to expand the language.
*
Cross-platform
In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software r ...
implementation – perl programs work on many types of computers, usually without the need to modify the source code. Perl interpreters have been developed for most operating systems (platforms), taking into account the idiosyncrasies of each, so all such platforms can theoretically run the same code.
* Text manipulation – anything from spell checking, to search and replace operations using regex, to natural language processing.
**
Pattern matching –
regex
A regular expression (shortened as regex or regexp; sometimes referred to as rational expression) is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" or ...
is integrated into perl.
**
Stream
A stream is a continuous body of water, body of surface water Current (stream), flowing within the stream bed, bed and bank (geography), banks of a channel (geography), channel. Depending on its location or certain characteristics, a stream ...
editing –
*
Database
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
manipulation –
*
Shell script
A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be scripting languages. Typical operations performed by shell scripts include file manip ...
ing – perl is good for writing programs in the form of a series of commands to be run by the Unix shell, a command line interpreter. Such programs are called "scripts". In this regard, perl is considered to be a scripting language. Typical operations performed by shell scripts include program execution, printing text, and file manipulation (copying, renaming, deleting, etc.).
* Being an
interpreted language, perl has the following advantages:
**
Platform independence
In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software r ...
**
Reflection and reflective use of the evaluator (e.g. a first-order
eval
In some programming languages, eval , short for the English evaluate, is a function which evaluates a string as though it were an expression in the language, and returns a result; in others, it executes multiple lines of code as though they had b ...
function)
** Smaller executable program size (since implementations have flexibility to choose the instruction code)
**
Dynamic typing
**
Dynamic scoping
Weaknesses of Perl
* Slow – being an interpreted language, perl code generally runs slower than compiled code. It would not be well suited for writing state-of-the-art video games, for example.
*
Software maintenance
Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes.
A common perception of maintenance is that it merely involves fixing defects. H ...
– source code may be cryptic (much like C), making it difficult to maintain code or fix bugs in code written by somebody else, unless adequate remarks are included.
Components of Perl
Perl documentation
* ''
Perl Programming Documentation'' – name of the user manual for the Perl 5 programming language, available online and for offline use.
Perl language structure
Perl language structure
The structure of the Perl programming language encompasses both the syntactical rules of the language and the general ways in which programs are organized. Perl's design philosophy is expressed in the commonly cited motto "there's more than one way ...
*
Perl data types – classifications identifying various types of data, that determine the possible values for each type; the operations that can be done on values of each type; the meaning of the data; and the way values of each type can be stored. The main data types in perl are:
**
Scalars
Scalar may refer to:
*Scalar (mathematics), an element of a field, which is used to define a vector space, usually the field of real numbers
*Scalar (physics), a physical quantity that can be described by a single element of a number field such a ...
**
Arrays
**
Hashes
**
Filehandle
In Unix and Unix-like computer operating systems, a file descriptor (FD, less frequently fildes) is a process-unique identifier (handle) for a file or other input/output resource, such as a pipe or network socket.
File descriptors typically have ...
s
**
Subroutines
**
Typeglob
The structure of the Perl programming language encompasses both the syntactical rules of the language and the general ways in which programs are organized. Perl's design philosophy is expressed in the commonly cited motto "there's more than one way ...
s
*
Perl control structures
*
Perl module 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.
A module defines its source code to ...
s - modular extensions of the Perl language. The following modules (and module groups) and many more, including support for them (manuals, etc.) can be found on CPAN.org, using its search box:
** Webpage-related modules – for creating, serving, fetching, and parsing web pages
***
CGI.pm
CGI.pm is a large and once widely used Perl module for programming Common Gateway Interface (CGI) web applications, providing a consistent API for receiving and processing user input. There are also functions for producing HTML or XHTML output ...
***
Library for WWW in Perl
LWP - The World-Wide Web library for Perl (also called libwww-perl) is a set of Perl modules that give Perl programming easy access to sending requests to the World Wide Web. libwww-perl provides an application programming interface (API) to an H ...
(LWP)
***
WebFetch
*** URI
*** HTML
** Graphics-related modules – for manipulating graphics and images
*** GD
*** Graphics
*** Image
****
Image-Pngslimmer
**
CTPP
**
DBIx::Class
**
Gtk2-Perl
** Mason
**
Moose
The moose (in North America) or elk (in Eurasia) (''Alces alces'') is a member of the New World deer subfamily and is the only species in the genus ''Alces''. It is the largest and heaviest extant species in the deer family. Most adult mal ...
**
Perl Data Language
Perl Data Language (abbreviated PDL) is a set of free software array programming extensions to the Perl programming language. PDL extends the data structures built into Perl, to include large multidimensional arrays, and adds functionality to m ...
(PDL)
**
Perl DBI
In computing, the Perl DBI (Perl Database Interface) 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 o ...
**
Perl Object Environment
: ''For the Mach variant, see Mach (kernel)''
The Perl Object Environment or POE is a library of Perl modules written in the Perl programming language by Rocco Caputo et al.
From CPAN:
:''"POE originally was developed as the core of a persiste ...
**
Template Toolkit
The Template Toolkit (TT) is a template engine used primarily for building web sites, but is also suitable for creating any type of digital document, such as a PDF or LaTeX file. Template Toolkit is based on a mini-language and does not allow di ...
** Tk – for building Perl programs with a graphical user interface
Elements of a perl script
*
#!usr/bin/perl
– called the "
shebang line", after the hash symbol (#) and ! (bang) at the beginning of the line. It is also known as the ''
interpreter directive
An interpreter directive is a computer language construct, that on some systems is better described as an aspect of the system's executable file format, that is used to control which interpreter parses and interprets the instructions in a compute ...
''.
*
#
– the ''
number sign'', also called the ''hash symbol''. In Perl, the # indicates the start of a comment. It instructs perl to ignore the rest of the line and not execute it as script code.
* Main structure (derived from C)
**
Variable
Variable may refer to:
* Variable (computer science), a symbolic name associated with a value and whose associated value may be changed
* Variable (mathematics), a symbol that represents a quantity in a mathematical expression, as used in many ...
s
**
Expressions
**
Assignment statement
In computer programming, an assignment statement sets and/or re-sets the value stored in the storage location(s) denoted by a variable name; in other words, it copies a value into the variable. In most imperative programming languages, the assi ...
s
**
Brace
Brace(s) or bracing may refer to:
Medical
* Orthopaedic brace, a device used to restrict or assist body movement
** Back brace, a device limiting motion of the spine
*** Milwaukee brace, a kind of back brace used in the treatment of spinal cur ...
-delimited
**
Blocks
**
Control structures
**
Subroutine
In computer programming, a function or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed.
Functions may ...
s
Programming tools
Text editors that support Perl scripting
*
Notepad++
Notepad++ is a text and source code editor for use with Microsoft Windows. It supports tabbed editing, which allows working with multiple open files in a single window. The product's name comes from the C postfix increment operator.
Notepad++ ...
– supports
syntax highlighting and
code folding for over 50 programming, scripting, and markup languages, including Perl.
*
gedit – free open source text editor for the GNOME desktop environment, Mac OS X and Microsoft Windows. Designed as a general purpose text editor, gedit emphasizes simplicity and ease of use. It includes tools for editing source code and structured text such as markup languages. It has configurable syntax highlighting for various languages including Perl.
*
UltraEdit
UltraEdit is a commercial text editor for Microsoft Windows, Linux and OS X created in 1994 by the founder of IDM Computer Solutions Inc., Ian D. Mead, and owned by Idera, Inc. since August 2021. The editor contains tools for programmers, includi ...
– commercial text editor for Microsoft Windows, Linux and Mac OS X (Intel) created in 1994 by Ian D. Mead. The editor contains tools for programmers, including macros, configurable syntax highlighting, code folding, file type conversions, project management,
Perl Compatible Regular Expressions for search-and-replace, a column-edit mode, remote editing of files via FTP, interfaces for APIs or command lines of choice and more.
*
Vim – free and open-source text editor based on vi, designed for use both from a command line interface and as a standalone application in a graphical user interface. Includes a scripting interface for Perl.
*
Visual Studio Code – is a free source-code editor from
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
, and available for Windows, Linux and macOS. Includes syntax highlighting for Perl and the ability to run and debug Perl code directly within the editor.
Perl support
*
CPAN
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 eith ...
– the Comprehensive Perl Archive Network, 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.
Websites
*
PerlMonks
''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 sty ...
Publications about Perl
Books about Perl
* ''
Programming Perl
''Programming Perl'', best known as the Camel Book among programmers, is a book about writing programs using the Perl programming language, revised as several editions (1991-2012) to reflect major language changes since Perl version 4. Editions ...
'' (aka the ''Camel Book'')
* ''
Learning Perl
''Learning Perl'', also known as the llama book, is a tutorial book for the Perl programming language, and is published by O'Reilly Media. The first edition (1993) was authored solely by Randal L. Schwartz, and covered Perl 4. All subsequent edi ...
'' (aka the ''Llama Book''
)
* ''
Intermediate Perl
''Intermediate Perl'' is a book about the Perl programming language by Randal L. Schwartz, brian d foy and Tom Phoenix, published in 2006 by O'Reilly Media. It was released as a retitled second edition of ''Learning Perl Objects, References & M ...
''
* ''
Mastering Perl
is the former publisher and editor of ''The Perl Review'', a magazine devoted to Perl and co-author of several books on Perl including '' Learning Perl'', '' Intermediate Perl'' and '' Mastering Perl''. He is also the founder of Perl Mongers ...
'' by
brian d foy
is the former publisher and editor of ''The Perl Review'', a magazine devoted to Perl and co-author of several books on Perl including '' Learning Perl'', '' Intermediate Perl'' and '' Mastering Perl''. He is also the founder of Perl Mongers ...
* ''
Advanced Perl Programming
''Advanced Perl Programming'' is a 1997 book by Sriram Srinivasan which covers complex techniques needed in production level Perl.
The second edition, by Simon Cozens and edited by Allison Randal, was published in 2005. It contains a different set ...
''
* ''
Effective Perl Programming''
* ''
Higher-Order Perl
''Higher-Order Perl: Transforming Programs with Programs'' (), is a book about the Perl programming language written by Mark Jason Dominus with the goal to teach Perl programmers with a strong C and Unix background how to use techniques with ro ...
''
* ''
Perl Best Practices
''Perl Best Practices'' is a programming book focusing on standard practices for Perl coding style, encouraging the development of maintainable source code. It was written by Damian Conway and published by O'Reilly.
References
External links
*P ...
''
* ''
Perl Cookbook
The ''Perl Cookbook'', , is a book containing solutions to common short tasks in Perl. Each chapter covers a particular topic area ("Strings", "Ties, Objects, and Classes", "CGI") and is divided into around a dozen ''recipes'' each on a particula ...
''
* ''
Perl Design Patterns Book ''Perl Design Patterns Book'' is an online textbook about Perl style and design and analysis. The contents are licensed under GNU Free Documentation License.
External links
* Perl Design Patterns (wiki
A wiki ( ) is an online hypertext pu ...
''
* ''
Object Oriented Perl''
* ''
Perl Hacks''
Magazines about Perl
* ''
The Perl Review''
History of Perl
*
History of Perl
Versions of Perl
*
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
*
Raku
Perl was derived from
*
AWK
AWK (''awk'') is a domain-specific language designed for text processing and typically used as a data extraction and reporting tool. Like sed and grep, it is a filter, and is a standard feature of most Unix-like operating systems.
The AWK langu ...
– interpreted programming language designed for text processing and typically used as a data extraction and reporting tool. It is a standard feature of most Unix-like operating systems. AWK is named using the initials from the last name of each of its 3 authors.
*
C – very popular programming language. Many later languages have borrowed directly or indirectly from C, including C++, D, Go, Rust, Java, JavaScript, Limbo, LPC, C#, Objective-C, Perl, PHP, Python, Verilog (hardware description language), and Unix's C shell. These languages have drawn many of their control structures and other basic features from C. Most of them (with Python being the most dramatic exception) are also very syntactically similar to C in general, and they tend to combine the recognizable expression and statement syntax of C with underlying type systems, data models, and semantics that can be radically different.
*
grep – grep stands for "Global Regular Expression Print". It is command-line utility for searching plain-text data sets for lines matching a regular expression. Grep was originally developed for the Unix operating system, but is available today for all Unix-like systems.
*
sed – (stream editor), is a Unix utility that parses and transforms text, using a simple, compact programming language. sed was one of the earliest tools to support regular expressions, and remains in use for text processing, most notably with the substitution command. Other options for doing "stream editing" include AWK and Perl.
*
sh – the Bourne shell, a command-line shell for Unix.
Perl software
Commercial software programmed in Perl
*
Anti-Spam SMTP Proxy
The Anti-Spam SMTP Proxy (ASSP) is an open-source, Perl based, platform-independent transparent SMTP proxy server.
Features
Some ASSP's features are:
* Hidden Markov Model spam filtering
* Bayesian spam filtering
* whitelisting
* Penalty Box (P ...
*
AxKit
*
BackupPC
BackupPC is a free disk-to-disk backup software suite with a web-based frontend. The cross-platform server will run on any Linux, Solaris, or UNIX-based server. No client is necessary, as the server is itself a client for several protocols that a ...
*
Big Medium
*
BioMOBY BioMOBY is a registry of web services used in bioinformatics. It allows interoperability between biological data hosts and analytical services by annotating services with terms taken from standard ontologies. BioMOBY is released under the Artistic ...
*
BioPerl
BioPerl is a collection of Perl modules that facilitate the development of Perl scripts for bioinformatics applications. It has played an integral role in the Human Genome Project.
Background
BioPerl is an active open source software project sup ...
*
Bonsai
Bonsai ( ja, 盆栽, , tray planting, ) is the Japanese art of growing and training miniature trees in pots, developed from the traditional Chinese art form of ''penjing''. Unlike ''penjing'', which utilizes traditional techniques to produce ...
*
Bricolage
In the arts, ''bricolage'' ( French for "DIY" or "do-it-yourself projects") is the construction or creation of a work from a diverse range of things that happen to be available, or a work constructed using mixed media.
The term ''bricolage'' ...
*
Catalyst
Catalysis () is the process of increasing the rate of a chemical reaction by adding a substance known as a catalyst (). Catalysts are not consumed in the reaction and remain unchanged after it. If the reaction is rapid and the catalyst recyc ...
*
CGIProxy
*
cPanel
cPanel is a web hosting control panel software developed by cPanel, LLC. It provides a graphical interface (GUI) and automation tools designed to simplify the process of hosting a web site to the website owner or the "end user". It enables admin ...
*
Cowsay
cowsay is a program that generates ASCII art pictures of a cow with a message. It can also generate pictures using pre-made images of other animals, such as Tux the Penguin, the Linux mascot. It is written in Perl. There is also a related progra ...
*
Dada Mail
Dada Mail is a web-based electronic mailing list management system that can be used for announcement lists. It can also be used to create and manage discussion lists by the use of an included plug-in called Dada Bridge, which requires a cron tas ...
*
Dancer
Dance is a performing art form consisting of sequences of movement, either improvised or purposefully selected. This movement has aesthetic and often symbolic value. Dance can be categorized and described by its choreography, by its repertoi ...
*
Debian bug tracking system
*
Fink
*
Frozen Bubble
''Frozen Bubble'' is a free software clone of ''Puzzle Bobble'' for a variety of home and mobile systems.
Gameplay
''Frozen Bubble's'' protagonist is a penguin a la Tux, the mascot of Linux and popular feature in many free software/ open-sour ...
*
GCfilms
*
GCstar
*
Greymatter
*
IComic
*
Ikonboard
Ikonboard was a free online forum or Bulletin Board System developed in Perl, PHP for use on MySQL, PostgreSQL, Oracle, as well as flat file databases.
Ikonboard History
Early years
Ikonboard was originally developed by Matt Mecham, with the fi ...
*
Infobot
Infobot is a Perl IRC bot, first written in 1995 by Kevin Lenzo. The bot's main goal was to remember URLs and associate them with a descriptive name, so whenever someone needed a specific URL they could ask the bot. For that reason, the first Inf ...
*
LedgerSMB
LedgerSMB is a libre software double entry accounting and Enterprise Resource Planning (ERP) system, focussed on functionality required by small (self-employment) and medium size businesses. However, companies with millions of journal lines sh ...
*
LiveJournal
*
Logitech Media Server
*
Majordomo
A majordomo is a person who speaks, makes arrangements, or takes charge for another. Typically, this is the highest (''major'') person of a household (''domūs'' or ''domicile'') staff, a head servant who acts on behalf of the owner of a large ...
*
MARC Marc or MARC may refer to:
People
* Marc (given name), people with the first name
* Marc (surname), people with the family name
Acronyms
* MARC standards, a data format used for library cataloging,
* MARC Train, a regional commuter rail system of ...
* Mason
*
Matt's Script Archive
Matt's Script Archive is a collection of CGI scripts written in the Perl programming language. Started in 1995 by Matt Wright (at the time a high school student in Fort Collins, Colorado), the archive contains about a dozen free scripts, designe ...
*
Maypole framework
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 fo ...
*
Mojolicious
*
Movable Type
Movable type (US English; moveable type in British English) is the system and technology of printing and typography that uses movable components to reproduce the elements of a document (usually individual alphanumeric characters or punctuatio ...
*
NTP pool
The NTP pool is a dynamic collection of networked computers that volunteer to provide highly accurate time via the Network Time Protocol to clients worldwide. The machines that are "in the pool" are part of the ''pool.ntp.org'' domain as well ...
*
OTRS
*
Padre
*
Perl Archive Toolkit
*
Perl Object Environment
: ''For the Mach variant, see Mach (kernel)''
The Perl Object Environment or POE is a library of Perl modules written in the Perl programming language by Rocco Caputo et al.
From CPAN:
:''"POE originally was developed as the core of a persiste ...
*
Perlbal
*
Plack
*
POPFile
*
ProBoards
ProBoards is a free, remotely hosted message board service that facilitates online discussions by allowing people to create their own online communities.
Ownership and service statistics
ProBoards was founded and is owned by Patrick Clinger, wh ...
*
Qpsmtpd
qpsmtpd is an SMTP daemon written in Perl. It was originally designed to be a drop-in replacement for ''qmail-smtpd'', the SMTP component of qmail, and it is now also compatible with Postfix, Exim, sendmail and virtually any software that "spea ...
*
Request Tracker
*
SpamAssassin
Apache SpamAssassin is a computer program used for anti-spam techniques, e-mail spam filtering. It uses a variety of spam-detection techniques, including Domain Name System, DNS and fuzzy checksum techniques, Bayesian spam filtering, Bayesian filt ...
*
Sprog
*
SQL-Ledger
SQL-Ledger is an ERP and double entry accounting system. Accounting data is stored in an SQL database server and a standard web browser can be used as its user interface. The system uses the Perl language with a database interface module for p ...
*
Strawberry Perl
Strawberry Perl is a distribution of the Perl programming language for the Microsoft Windows platform. Additionally, strawberry contains a fully featured Mingw-w64 C/C++ compiler with many libraries included. While most other distributions rely o ...
*
SVK
*
TWiki
*
V6
*
VERTCON
*
WebGUI
*
Webmin
Webmin is a powerful and flexible web-based server management control panel for Unix-like systems. Webmin allows the user to configure operating system internals, such as users, disk quotas, services or configuration files, as well as modify an ...
*
Website Meta Language
*
WikiWikiWeb
*
Xuheki
Free software programmed in Perl
*
Agora
The agora (; grc, ἀγορά, romanized: ', meaning "market" in Modern Greek) was a central public space in ancient Greek city-states. It is the best representation of a city-state's response to accommodate the social and political order of t ...
– was a World Wide Web email browser and was a proof of concept to help people to use the full internet. Agora was an email-based web browser designed for non-graphic terminals and to help people without full access to the internet such as in developing countries or without a permanent internet connection. Similar to W3Gate, Agora was a server application designed to fetch HTML documents through e-mail rather than http.
*
Automake – programming tool that produces portable makefiles for use by the make program, used in compiling software. It is made by the Free Software Foundation as one of GNU programs, and is part of the GNU build system. The makefiles produced follow the GNU Coding Standards.
*
AWStats – open source Web analytics reporting tool, suitable for analyzing data from Internet services such as web, streaming media, mail and FTP servers.
*
AxKit – was an XML Apache publishing framework run by the Apache foundation written in Perl. It provided on-the-fly conversion from XML to any format, such as HTML, WAP or text using either W3C standard techniques, or flexible custom code.
*
BackupPC
BackupPC is a free disk-to-disk backup software suite with a web-based frontend. The cross-platform server will run on any Linux, Solaris, or UNIX-based server. No client is necessary, as the server is itself a client for several protocols that a ...
– free Disk-to-disk backup software suite with a web-based frontend. The cross-platform server will run on any Linux, Solaris, or UNIX based server. No client is necessary.
*
Blosxom – free-software weblog program (and simple content management system) written in Perl by Rael Dornfest. It uses the pre-existing file system instead of a database management system, unlike most blog software.
*
Bricolage
In the arts, ''bricolage'' ( French for "DIY" or "do-it-yourself projects") is the construction or creation of a work from a diverse range of things that happen to be available, or a work constructed using mixed media.
The term ''bricolage'' ...
– Enterprise Class content management system (CMS) competitive in features and capability to high end, high cost proprietary products.
*
Bugzilla – Web-based general-purpose bugtracker and testing tool originally developed and used by the Mozilla project, and licensed under the Mozilla Public License.
*
Catalyst
Catalysis () is the process of increasing the rate of a chemical reaction by adding a substance known as a catalyst (). Catalysts are not consumed in the reaction and remain unchanged after it. If the reaction is rapid and the catalyst recyc ...
– open source web application framework. A web application developer would use Catalyst to deal with code common to all web applications: it provides interfaces to web servers and receiving page requests, dispatching these into developer-written code to process and return the requests, and provides a standardised interface for data models, authentication, session management and other common web application elements.
*
CGI:IRC – CGI program written in Perl that allows access to IRC via a web browser. It is designed to be flexible and has many uses such as an IRC gateway for an IRC network, a chat-room for a website or to access IRC when stuck behind a restrictive firewall.
*
ChipVault – terminal based Vi wrapper for creating and managing Verilog and VHDL RTL ( register transfer level ) based ASIC and FPGA digital chip designs. It was created by an ASIC designer in 2001 to improve his daily workflow.
*
Dada Mail
Dada Mail is a web-based electronic mailing list management system that can be used for announcement lists. It can also be used to create and manage discussion lists by the use of an included plug-in called Dada Bridge, which requires a cron tas ...
– web-based electronic mailing list management system that can be used for announcement lists. It can also be used to create and manage discussion lists, if you activate and configure an included plug-in called Dada Bridge, for which you will need to set a cron task.
*
Dancer
Dance is a performing art form consisting of sequences of movement, either improvised or purposefully selected. This movement has aesthetic and often symbolic value. Dance can be categorized and described by its choreography, by its repertoi ...
– open source micro web application framework written in Perl inspired by Ruby's Sinatra.
*
Debian bug tracking system – the bug tracking system used by the Debian project. Its unique feature is that it doesn't have any form of web-interface to edit bug reports - all modification is done through email.
* DJabberd – open source XMPP application server.
*
Drakconf
drakconf, or the Mandriva Control Center, is a computer program written in Perl for the configuration of Mandriva Linux, a Linux distribution. It is a tool that allows easy configuration of Mandriva.
It is licensed under the open-source GNU Ge ...
– allows easy configuration of Mandriva Linux, a Linux distribution.
*
EPrints – open source software package for building open access repositories that are compliant with the Open Archives Initiative Protocol for Metadata Harvesting. It shares many of the features commonly seen in Document Management systems, but is primarily used for institutional repositories and scientific journals.
*
Fink – project to port and package open-source Unix programs to Mac OS X.
*
Ganglia
A ganglion is a group of neuron cell bodies in the peripheral nervous system. In the somatic nervous system this includes dorsal root ganglia and trigeminal ganglia among a few others. In the autonomic nervous system there are both sympatheti ...
– scalable distributed system monitor tool for high-performance computing systems such as clusters and grids. It allows the user to remotely view live or historical statistics (such as CPU load averages or network utilization) for all machines that are being monitored.
*
Git – distributed revision control and source code management (SCM) system with an emphasis on speed.
*
GNU parallel
GNU parallel is a command-line driven utility for Linux and other Unix-like operating systems which allows the user to execute shell scripts or commands in parallel. GNU parallel is free software, written by Ole Tange in Perl. It is available un ...
– command-line driven utility for Linux or other Unix-like operating systems which allows the user to execute shell scripts in parallel. It is free software, available under the terms of GPLv3.
*
GPRename – program for renaming multiple files and directories at one time. It runs on any Unix-like operating system.
*
Ikiwiki
ikiwiki is a free and open-source wiki application, designed by Joey Hess. It is licensed under the terms of the GNU General Public License, version 2 or later. ikiwiki is written in Perl, although external plugins can be implemented in any langu ...
– wiki application that stores its pages in a standard version control system such as Git or Subversion or 6+ others.
*
Infobot
Infobot is a Perl IRC bot, first written in 1995 by Kevin Lenzo. The bot's main goal was to remember URLs and associate them with a descriptive name, so whenever someone needed a specific URL they could ask the bot. For that reason, the first Inf ...
– IRC bot that remembers URLs and associate them with a descriptive name.
*
LiveJournal – free and open-source server software that also runs the LiveJournal virtual community.
*
LiVES – video editing software and VJ tool, released under the GNU General Public License version 3 or later with versions available for Linux distributions, BSD, Solaris, and IRIX.
*
Logitech Media Server – streaming audio server that supports Logitech's Squeezebox range of digital audio receivers.
*
Maypole framework
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 fo ...
– web application framework for Model-view-controller-oriented applications. It is designed to minimize coding requirements for creating simple web interfaces to databases, while remaining flexible enough to support enterprise web applications.
*
Mojolicious – real-time web application framework designed for use in both simple and complex web applications.
*
Movable Type
Movable type (US English; moveable type in British English) is the system and technology of printing and typography that uses movable components to reproduce the elements of a document (usually individual alphanumeric characters or punctuatio ...
– weblog publishing system that can host multiple weblogs and standalone content pages, manage files and user roles, templates, tags, categories, and trackback links.
*
Netpbm – open source package of graphics programs and programming library. Works under many Unix platforms, Windows, Mac OS X, VMS, and Amiga OS.
*
OCS Inventory – inventory a network's IT assets by collecting information about the hardware and software of networked machines running the OCS client program ("OCS Inventory Agent"). OCS can be used to visualize the inventory through a web interface.
*
Openkore – custom client and an advanced automated assistant for the MMORPG Ragnarok Online. Licensed under the GNU General Public License.
*
OTRS – Open-source Ticket Request System. Free and open-source trouble ticket system software package that a company, organization, or other entity can use to assign tickets to incoming queries and track further communications about them.
*
Padre – Perl Application Development and Refactoring Environment, a multi-language software development platform comprising an IDE and a plug-in system to extend it. For developing applications in Perl.
*
Perlbal – reverse proxy load balancer and web server. Distributed under both the GNU General Public License and the Artistic License.
*
Pisg – Perl IRC Statistics Generator, an open-source Internet Relay Chat (IRC) log file analysis and statistical visualization program that analyzes various formats of log files from IRC clients and bots and generates HTML pages containing statistics about the channel the logs were taken from.
*
Qpsmtpd
qpsmtpd is an SMTP daemon written in Perl. It was originally designed to be a drop-in replacement for ''qmail-smtpd'', the SMTP component of qmail, and it is now also compatible with Postfix, Exim, sendmail and virtually any software that "spea ...
– SMTP daemon written in Perl. It was originally designed to be a drop-in replacement for qmail-smtpd, the SMTP component of qmail, and it is now also compatible with Postfix, Exim, sendmail and virtually any software that "speaks SMTP".
*
Request Tracker – ticket-tracking system written in Perl used to coordinate tasks and manage requests among a community of users.
*
Satellite
A satellite or artificial satellite is an object intentionally placed into orbit in outer space. Except for passive satellites, most satellites have an electricity generation system for equipment on board, such as solar panels or radioisotope ...
– Redhat Satellite is an open source system management system that allows a system's administrators to deploy, manage and monitor Redhat Linux and Solaris hosts. Basically a local version of Red Hat Network.
* Scoop – content management system (CMS) for collaborative publishing geared toward encouraging user contributions and participation. The latest version released was 1.1.8 in 2007. It is no longer developed.
*
Spacewalk
Extravehicular activity (EVA) is any activity done by an astronaut in outer space outside a spacecraft. In the absence of a breathable atmosphere of Earth, Earthlike atmosphere, the astronaut is completely reliant on a space suit for environmen ...
– open source systems management software developed by Red Hat. It is the upstream version of the RHN Satellite Server, which was open sourced in 2008. Spacewalk includes the web interface and back-end, as well as RHN Proxy Server and associated client software of Satellite and makes them available to users and developers under a free and open-source software (FOSS) license.
*
SpamAssassin
Apache SpamAssassin is a computer program used for anti-spam techniques, e-mail spam filtering. It uses a variety of spam-detection techniques, including Domain Name System, DNS and fuzzy checksum techniques, Bayesian spam filtering, Bayesian filt ...
– e-mail spam filter that uses content-matching rules, released under the Apache License 2.0. It is now part of the Apache Foundation.
*
SQL-Ledger
SQL-Ledger is an ERP and double entry accounting system. Accounting data is stored in an SQL database server and a standard web browser can be used as its user interface. The system uses the Perl language with a database interface module for p ...
– enterprise resource planning (ERP) and double entry accounting system. Accounting data is stored in an SQL Database Server and a standard web browser can be used as its user interface.
*
SVK – decentralized version control system, with a hierarchical distributed design comparable to centralized deployment of BitKeeper and GNU arch.
*
Template Toolkit
The Template Toolkit (TT) is a template engine used primarily for building web sites, but is also suitable for creating any type of digital document, such as a PDF or LaTeX file. Template Toolkit is based on a mini-language and does not allow di ...
– template engine used primarily for building web sites, but is also suitable for creating any type of digital document, such as a PDF or LaTeX file. Template Toolkit is based on a
mini-language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
and does not allow direct Perl in its templates.
*
TWiki – structured wiki application, typically used to run a collaboration platform, knowledge or document management system, a knowledge base, or team portal. Users can create wiki applications using the TWiki Markup Language, and developers can extend its functionality with plugins.
*
UDPCast – file transfer tool that can send data simultaneously to many destinations on a LAN. This can for instance be used to install entire classrooms of PCs at once.
*
UseModWiki
UseModWiki is a wiki software written in Perl and licensed under the GNU General Public License. Pages in UseModWiki are stored in ordinary files, not in a relational database. Wikipedias in English and many other languages were powered by Use ...
–
wiki engine
Wiki software (also known as a wiki engine or a wiki application), is collaborative software that runs a wiki, which allows the users to create and collaboratively edit pages or entries via a web browser. A wiki system is usually a web application ...
licensed under the GNU General Public License. Its page are stored in ordinary files, not in a relational database. Its interface is similar to
MediaWiki
MediaWiki is a free and open-source wiki software. It is used on Wikipedia and almost all other Wikimedia websites, including Wiktionary, Wikimedia Commons and Wikidata; these sites define a large part of the requirement set for MediaWiki ...
with the classic skin.
*
W3Perl
W3Perl is a free software logfile analyser, which can parse Web/FTP/Mail/CUPS/DHCP/SSH and Squid logfiles. Most major web logfile formats are supported (Web : CLF/ECLF/NECLF on Unix, IIS/ W3C on Microsoft ; Mail : Postfix/Sendmail/Exim), as well ...
– logfile analyser, which can parse Web/FTP/Mail/CUPS or Squid files. Most major web logfile formats are supported, as well as split/compressed files.
*
WebGUI – permits non-technically minded users to arrange content in pages and layouts, containing 'Assets' (applets) which permit website visitors to view and interact with various types of data from basic Articles to full-blown Content management system and custom applications. Released under the GNU General Public License.
*
Website Meta Language – extensible web designer's off-line HTML generation toolkit for Unix, distributed under the GNU General Public License (GPL v2). It is written in ANSI C and Perl 5, built via a GNU Autoconf based source tree and runs out-of-the-box on all major Unix derivates.
*
XCAT
xCAT (Extreme Cloud Administration Toolkit) is open-source distributed computing management software developed by IBM, used for the deployment and administration of Linux or AIX based clusters.
Toolkit
xCAT can:
* Create and manage disk ...
– Extreme Cloud Administration Toolkit, an open-source distributed computing management software developed by IBM, used for the deployment and administration of Linux or AIX based clusters.
*
Xuheki – web-based Internet Message Access Protocol built upon Ajax technology and supports the Apache webserver.
Perl culture
*
Perl golf
*
Just another Perl hacker
Just another Perl hacker, or JAPH, typically refers to a Perl program that prints "Just another Perl hacker," (the comma is canonical but is occasionally omitted). Short JAPH programs are often used as signatures in online forums, or as T-shirt ...
*
Obfuscated Perl Contest
The Obfuscated Perl Contest was a competition for programmers of Perl which was held annually between 1996 and 2000. Entrants to the competition aimed to write "devious, inhuman, disgusting, amusing, amazing, and bizarre Perl code". It was run by ...
*
There's more than one way to do it (TMTOWTDI)
Perl organizations
*
Perl Foundation
**
Perl Mongers
*
Perl Monks
*
Yet Another Perl Conference
Yet Another Perl Conference (YAPC), from 2016–2019 called The Perl Conference (TPC), from 2020 on The Perl and Raku Conference, is a series of conferences discussing the Perl programming language, usually organized under the auspices of The Perl ...
Perl personalities
*
Larry Wall
*
Sean M. Burke
*
Chromatic
Diatonic and chromatic are terms in music theory that are most often used to characterize scales, and are also applied to musical instruments, intervals, chords, notes, musical styles, and kinds of harmony. They are very often used as a pair, ...
*
Allison Randal
Allison Randal is a software developer and author. She was the chief architect of the Parrot virtual machine, a member of the board of directors for The Perl Foundation, a director of the Python Software Foundation from 2010 to 2012, and the ...
*
Lincoln Stein Lincoln David Stein is a scientist and Professor in bioinformatics and computational biology at the Ontario Institute for Cancer Research.
Education
Stein completed a Doctor of Medicine at Harvard Medical School and a PhD in Cell Biology at H ...
*
Dan Sugalski
Perl writers
*
Tom Christiansen
Thomas S. "Tom" Christiansen (born February 13, 1963), nicknamed tchrist or occasionally thoth, is a Unix developer and user known for his work with the Perl programming language.
Christiansen worked for several years at TSR Hobbies before atte ...
*
chromatic
Diatonic and chromatic are terms in music theory that are most often used to characterize scales, and are also applied to musical instruments, intervals, chords, notes, musical styles, and kinds of harmony. They are very often used as a pair, ...
*
Damian Conway
*
brian d foy
is the former publisher and editor of ''The Perl Review'', a magazine devoted to Perl and co-author of several books on Perl including '' Learning Perl'', '' Intermediate Perl'' and '' Mastering Perl''. He is also the founder of Perl Mongers ...
*
Neil J. Gunther
Neil Gunther (born 15 August 1950) is a computer information systems researcher best known internationally for developing the open-source performance modeling software '' Pretty Damn Quick'' and developing thGuerrilla approachto computer ca ...
*
Allison Randal
Allison Randal is a software developer and author. She was the chief architect of the Parrot virtual machine, a member of the board of directors for The Perl Foundation, a director of the Python Software Foundation from 2010 to 2012, and the ...
*
Randal L. Schwartz
Randal L. Schwartz (born November 22, 1961), also known as merlyn, is an American author, system administrator and programming consultant. He has written several books on the Perl programming language, and plays a promotional role within the Per ...
*
Audrey Tang
Audrey Tang ( zh, t=唐鳳, p=Táng Fèng; born 18 April 1981) is a Taiwanese free software programmer and the inaugural Minister of Digital Affairs of the Republic of China (Taiwan), who has been described as one of the "ten greatest Taiwanese c ...
*
Larry Wall
Raku
*
Raku
**
Raku rules
Raku may refer to:
* Lake Raku, an artificial lake in Tallinn, Estonia
* Raku ware, a type of pottery used in the Japanese tea ceremony
* Raku, Nepal, a village in the Karnali Zone
* ''RAkU'' (ballet), a ballet by Yuri Possokhov
* Raku (programm ...
– a core part of the language that expands the definition of "regexes" with parsing and pattern matching constructs that exceed the capabilities of formal regular expressions
Implementations of Raku
*
Rakudo
See also
*
Perl Data Language
Perl Data Language (abbreviated PDL) is a set of free software array programming extensions to the Perl programming language. PDL extends the data structures built into Perl, to include large multidimensional arrays, and adds functionality to m ...
*
Perl Object Environment
: ''For the Mach variant, see Mach (kernel)''
The Perl Object Environment or POE is a library of Perl modules written in the Perl programming language by Rocco Caputo et al.
From CPAN:
:''"POE originally was developed as the core of a persiste ...
*
Perl Object-Oriented Persistence {{Unsourced, date=January 2017
Perl Object-Oriented Persistence (POOP) is the term given to refer to object-relational mapping mechanisms written in the Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic program ...
*
Plain Old Documentation
References
External links
* Perl.org
; Community support
PerlMonks– a community committed to sharing Perl knowledge and coding tips
; Free Perl tutorials
at Linux Forums
''Perl Maven Tutorial''– a beginner and an advanced tutorial
– introductory tutorial
*
' – includes CGI instruction.
*
' – from the Computer Science Library, Stanford University
; Free on-line books about Perl
*
' – book by A.D. Marshall, Cardiff University
''Modern Perl''– free on-line book by
chromatic
Diatonic and chromatic are terms in music theory that are most often used to characterize scales, and are also applied to musical instruments, intervals, chords, notes, musical styles, and kinds of harmony. They are very often used as a pair, ...
''Picking up Perl''– free on-line book by Bradley M. Kuhn and Neil Smyth
''Impatient Perl''– for readers with previous programming experience. Learn Perl in about a week.
Learning Perl the Hard Way– for people who know another programming language.
*
Higher-Order Perl' – advanced programming in Perl
Perl phrasebook– compare equivalent examples of Perl and Python code, on the Python Wiki
; Perl scripts
''Perl Script Repository'' at roth.net
{{Outline footer
1
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...