HOME

TheInfoList



OR:

The following outline is provided as an overview of and topical guide to the Perl programming language: Perl – high-level, general-purpose, interpreted,
multi-paradigm Programming languages can be grouped by the number and types of Programming paradigm, paradigms supported. Paradigm summaries A concise reference for the programming paradigms listed in this article. * Concurrent programming language, Concurrent ...
,
dynamic programming language A dynamic programming language is a type of programming language that allows various operations to be determined and executed at runtime. This is different from the compilation phase. Key decisions about variables, method calls, or data types are ...
.
Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
was originally developed by
Larry Wall Larry Arnold Wall (born September 27, 1954) is an American computer programmer, linguist, and author known for creating the Perl programming language and the patch tool. Early life and education Wall grew up in Los Angeles and Bremerton, Wash ...
in 1987 as a general-purpose
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user 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, a ...
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 high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
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. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
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 In computer software, a general-purpose programming language (GPL) is a programming language for building software in a wide variety of application Domain (software engineering), domains. Conversely, a Domain-specific language, domain-specific pro ...
– programming language designed to be used for writing software in a wide variety of application domains. ***
High-level programming language 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 ''elements'', be ea ...
– 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 In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An inter ...
– 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 In computing, a script is a relatively short and simple set of instructions that typically automation, automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming ...
– 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 In computing, a script is a relatively short and simple set of instructions that typically automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming language t ...
– 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 A dynamic programming language is a type of programming language that allows various operations to be determined and executed at runtime. This is different from the compilation phase. Key decisions about variables, method calls, or data types are ...
– 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 software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
– 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, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
– 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 Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
– 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 Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed b ...
". There are also many extension modules available to expand the language. *
Cross-platform Within 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 platform, computing platforms. Some ...
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 In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually must be exact: "either it will or will not be a ...
regex A regular expression (shortened as regex or regexp), sometimes referred to as rational expression, is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" ...
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 strea ...
editing – *
Database In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
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 command languages. Typical operations performed by shell scripts include file manipu ...
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 In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An inter ...
, perl has the following advantages: ** Platform independence ** Reflection and reflective use of the evaluator (e.g. a first-order
eval In some programming languages, eval , short for 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 been incl ...
function) ** Smaller executable program size (since implementations have flexibility to choose the instruction code) **
Dynamic typing In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every '' term'' (a word, phrase, or other set of symbols). Usu ...
**
Dynamic scoping In computer programming, the scope of a name binding (an association of a name to an entity, such as a variable) is the part of a program where the name binding is valid; that is, where the name can be used to refer to the entity. In other parts ...


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 is the modification of software after delivery. Software maintenance is often considered lower skilled and less rewarding than new development. As such, it is a common target for outsourcing or offshoring. Usually, the tea ...
– 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 ...
**
Array An array is a systematic arrangement of similar objects, usually in rows and columns. Things called an array include: {{TOC right Music * In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
s ** Hashes ** Filehandles **
Subroutines In computer programming, a function (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times. Callable units provide a p ...
**
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 modules - 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 *** Library for WWW in Perl (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 (: 'moose'; used in North America) or elk (: 'elk' or 'elks'; used in Eurasia) (''Alces alces'') is the world's tallest, largest and heaviest extant species of deer and the only species in the genus ''Alces''. It is also the tal ...
** Perl Data Language (PDL) ** Perl DBI ** Perl Object Environment ** Template Toolkit ** Tk – for building Perl programs with a graphical user interface


Elements of a perl script

* #!/usr/bin/env 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 The symbol is known as the number sign, hash, (or in North America) the pound sign. The symbol has historically been used for a wide range of purposes including the designation of an ordinal number and as a Typographic ligature, ligatured abbre ...
'', 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) ** Variables ** 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 ass ...
s ** Brace-delimited **
Block Block or blocked may refer to: Arts, entertainment and media Broadcasting * Block programming, the result of a programming strategy in broadcasting * W242BX, a radio station licensed to Greenville, South Carolina, United States known as ''96.3 ...
s **
Control structure In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an '' ...
s **
Subroutine In computer programming, a function (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times. Callable units provide a ...
s


Programming tools


Text editors that support Perl scripting

*
Notepad++ Notepad++ (sometimes npp or NPP) is a text and source code editor for use with Microsoft Windows. It supports tabbed editing, which allows working with multiple open files in one window. The program's name comes from the C postfix increment op ...
– supports
syntax highlighting Syntax highlighting is a feature of text editors that is used for programming language, programming, scripting language, scripting, or markup language, markup languages, such as HTML. The feature displays text, especially source code, in differe ...
and
code folding Code or text folding, or less commonly holophrasting, is a feature of some graphical user interfaces that allows the user to selectively hide ("fold") or display ("unfold") parts of a document. This allows the user to manage large amounts of text ...
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 – 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 Visual Studio Code, commonly referred to as VS Code, is an integrated development environment developed by Microsoft for Windows, Linux, macOS and web browsers. Features include support for debugging, syntax highlighting, intelligent code comp ...
– is a free source-code editor from
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
, 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 software repository of over 220,000 software modules and accompanying documentation for 45,500 distributions, written in the Perl programming language by over 14,500 contributors. ''CPAN'' can de ...
– 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


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 editi ...
'' (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'' by brian d foy * '' Advanced Perl Programming'' * ''
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 Randal L. Schwartz (born Novemb ...
'' * '' Higher-Order Perl'' * '' Perl Best Practices'' * '' Perl Cookbook'' * '' Perl Design Patterns Book'' * '' Object Oriented Perl'' * '' Perl Hacks''


Magazines about Perl

* '' The Perl Review''


History of Perl

* History of Perl


Versions of Perl

*
Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
* Raku


Perl was derived from

* AWK – 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 is a command-line utility for searching plaintext datasets for lines that match a regular expression. Its name comes from the ed command g/re/p (global regular expression search and print), which has the same effect. grep was originally de ...
– 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 * AxKit * BackupPC * Big Medium * BioMOBY * BioPerl *
Bonsai Bonsai (; , ) is the Japanese art of Horticulture, growing and shaping miniature trees in containers, with a long documented history of influences and native Japanese development over a thousand years, and with unique aesthetics, cultural hist ...
*
Bricolage In the arts, ''bricolage'' (French language, 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 t ...
*
Catalyst Catalysis () is the increase in rate of a chemical reaction due to an added substance known as a catalyst (). Catalysts are not consumed by the reaction and remain unchanged after it. If the reaction is rapid and the catalyst recycles quick ...
* CGIProxy * cPanel * Cowsay *
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 an The arts, art form, consisting of sequences of body movements with aesthetic and often Symbol, symbolic value, either improvised or purposefully selected. Dance can be categorized and described by its choreography, by its repertoir ...
*
Debian bug tracking system Debbugs is the software powering the Debian project's issue tracking system. Uniquely it doesn't have any form of web-interface to edit bug reports all modification is done through email. Debbugs was mainly written by Ian Jackson, former Debian p ...
* Fink * Frozen Bubble * GCfilms * GCstar * Greymatter * IComic * Ikonboard * Infobot * LedgerSMB *
LiveJournal LiveJournal (), stylised as LiVEJOURNAL, is a Russian-owned social networking service where users can keep a blog, journal, or diary. American programmer Brad Fitzpatrick started LiveJournal on April 15, 1999, as a way of keeping his high school ...
* 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 larg ...
* MARC * 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, design ...
* Maypole framework *
Mojolicious 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 ...
*
Movable Type Movable type (US English; moveable type in British English) is the system and technology of printing and typography that uses movable Sort (typesetting), components to reproduce the elements of a document (usually individual alphanumeric charac ...
*
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 Name Syste ...
*
OTRS OTRS (originally Open-Source Ticket Request System) is a service management suite. The suite contains an agent portal, admin dashboard and customer portal. In the agent portal, teams process tickets and requests from customers (internal or ext ...
* Padre * Perl Archive Toolkit * Perl Object Environment * Perlbal * Plack * POPFile * ProBoards * Qpsmtpd * Request Tracker *
SpamAssassin Apache SpamAssassin is a computer program used for e-mail spam filtering. It uses a variety of spam-detection techniques, including DNS and fuzzy checksum techniques, Bayesian filtering, external programs, blacklists and online databases. It ...
* Sprog * SQL-Ledger * Strawberry Perl * SVK * TWiki * V6 * VERTCON * WebGUI * Webmin * Website Meta Language *
WikiWikiWeb The WikiWikiWeb is the first wiki, or user-editable website. It was launched on 25 March 1995 by programmer Ward Cunningham and has been a read-only archive since 2015. The name ''WikiWikiWeb'' originally also applied to the wiki software that o ...
* Xuheki


Free software programmed in Perl

*
Agora The agora (; , romanized: ', meaning "market" in Modern Greek) was a central public space in ancient Ancient Greece, Greek polis, city-states. The literal meaning of the word "agora" is "gathering place" or "assembly". The agora was the center ...
– 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 Web analytics is the measurement, data collection, collection, analysis, and reporting of web Data (computing), data to understand and optimize web usage. Web analytics is not just a process for measuring web traffic but can be used as a tool for ...
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 – 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 language, 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 t ...
– Enterprise Class content management system (CMS) competitive in features and capability to high end, high cost proprietary products. *
Bugzilla Bugzilla is a web-based general-purpose bug tracking system and testing tool originally developed and used by the Mozilla project, and licensed under the Mozilla Public License. Released as open-source software by Netscape Communications in 19 ...
– 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 increase in rate of a chemical reaction due to an added substance known as a catalyst (). Catalysts are not consumed by the reaction and remain unchanged after it. If the reaction is rapid and the catalyst recycles quick ...
– 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 an The arts, art form, consisting of sequences of body movements with aesthetic and often Symbol, symbolic value, either improvised or purposefully selected. Dance can be categorized and described by its choreography, by its repertoir ...
– open source micro web application framework written in Perl inspired by Ruby's Sinatra. *
Debian bug tracking system Debbugs is the software powering the Debian project's issue tracking system. Uniquely it doesn't have any form of web-interface to edit bug reports all modification is done through email. Debbugs was mainly written by Ian Jackson, former Debian p ...
– 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 – allows easy configuration of Mandriva Linux, a Linux distribution. *
EPrints EPrints is a free and open-source software package for building open access repositories that are compliant with the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH). It shares many of the features commonly seen in document m ...
– 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 (: ganglia) 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 a ...
– 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 Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively. Design goals of Git include speed, data integrity, and suppor ...
– distributed revision control and source code management (SCM) system with an emphasis on speed. * GNU parallel – 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 – wiki application that stores its pages in a standard version control system such as Git or Subversion or 6+ others. * Infobot – IRC bot that remembers URLs and associate them with a descriptive name. *
LiveJournal LiveJournal (), stylised as LiVEJOURNAL, is a Russian-owned social networking service where users can keep a blog, journal, or diary. American programmer Brad Fitzpatrick started LiveJournal on April 15, 1999, as a way of keeping his high school ...
– free and open-source server software that also runs the LiveJournal virtual community. *
LiVES Lives may refer to: * The plural form of a ''life'' * Lives, Iran, a village in Khuzestan Province, Iran * The number of lives in a video game * ''Parallel Lives'', aka ''Lives of the Noble Greeks and Romans'', a series of biographies of famous m ...
– 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 – 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 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 ...
– 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 Sort (typesetting), components to reproduce the elements of a document (usually individual alphanumeric charac ...
– weblog publishing system that can host multiple weblogs and standalone content pages, manage files and user roles, templates, tags, categories, and trackback links. *
Netpbm Netpbm (formerly Pbmplus) is an open-source software, open-source package of graphics programs and a programming library. It is used primarily in Unix, where it is found in all major open-source operating system distributions, but also works on M ...
– 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 OTRS (originally Open-Source Ticket Request System) is a service management suite. The suite contains an agent portal, admin dashboard and customer portal. In the agent portal, teams process tickets and requests from customers (internal or ext ...
– 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 – 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 an artificial satellite is an object, typically a spacecraft, placed into orbit around a celestial body. They have a variety of uses, including communication relay, weather forecasting, navigation ( GPS), broadcasting, scient ...
– 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 environme ...
– 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 e-mail spam filtering. It uses a variety of spam-detection techniques, including DNS and fuzzy checksum techniques, Bayesian filtering, external programs, blacklists and online databases. It ...
– 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 – 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 – 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 ...
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. * UseModWikiwiki engine 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 free and open-source wiki software originally developed by Magnus Manske for use on Wikipedia on January 25, 2002, and further improved by Lee Daniel Crocker,mailarchive:wikipedia-l/2001-August/000382.html, Magnus Manske's announc ...
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 a ...
– 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 software, open-source distributed computing management software developed by IBM, used for the system deployment, deployment and computer administration, administration of Linux or AIX ...
– 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 Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed by ...
* Obfuscated Perl Contest *
There's more than one way to do it Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed b ...
(TMTOWTDI)


Perl organizations

* Perl Foundation ** Perl Mongers * Perl Monks * Yet Another Perl Conference


Perl personalities

*
Larry Wall Larry Arnold Wall (born September 27, 1954) is an American computer programmer, linguist, and author known for creating the Perl programming language and the patch tool. Early life and education Wall grew up in Los Angeles and Bremerton, Wash ...
* Sean M. Burke *
Chromatic Diatonic and chromatic are terms in music theory that are used to characterize scales. The terms are also applied to musical instruments, intervals, chords, notes, musical styles, and kinds of harmony. They are very often used as a pair, es ...
* Allison Randal * Lincoln Stein * 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 atten ...
*
chromatic Diatonic and chromatic are terms in music theory that are used to characterize scales. The terms are also applied to musical instruments, intervals, chords, notes, musical styles, and kinds of harmony. They are very often used as a pair, es ...
*
Damian Conway Damian Conway (born 5 October 1964 in Melbourne, Australia) is a computer scientist, a member of the Perl and Raku communities, a public speaker, and the author of several books. Until 2010, he was also an adjunct associate professor in the Fa ...
* brian d foy * Neil J. Gunther * Allison Randal *
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 Tang Feng ( zh, t=唐鳳, p=Táng Fèng; born 18 April 1981), also known by her English name Audrey, is a Taiwanese people, Taiwanese politician and free software programmer who served as the first Minister of Digital Affairs of Taiwan from Augu ...
*
Larry Wall Larry Arnold Wall (born September 27, 1954) is an American computer programmer, linguist, and author known for creating the Perl programming language and the patch tool. Early life and education Wall grew up in Los Angeles and Bremerton, Wash ...


Raku

* Raku ** Raku rules – 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 Rakudo is a Raku compiler targeting MoarVM, and the Java Virtual Machine, that implements the Raku specification. It is currently the only major Raku compiler in active development. Originally developed within the Parrot Parrots (Psittacif ...


See also

* Perl Data Language * Perl Object Environment * 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 used to characterize scales. The terms are also applied to musical instruments, intervals, chords, notes, musical styles, and kinds of harmony. They are very often used as a pair, es ...

''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 high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...