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'. [1] The name PerlMonks, and the general style of the website, is designed to both humorously reflect the almost religious zeal that programmers sometimes have for their favorite language, and also to engender an atmosphere of calm reflection and consideration for other users.
Users (referred to as monks) create discussion topics which other monks can reply to and vote as good or bad. Users have an experience rating (XP) that roughly measures their participation in the PerlMonks website as perceived by the other monks, not necessarily their proficiency in the Perl language. All monks have a 'home node', providing profile information and an area for Monks to personalize.
Notable members include the creator of the Perl language, the authors of several well-known Perl books [2] and the authors of numerous CPAN modules [3] . CPAN authors frequently promote and provide support for their modules at PerlMonks.
The site has tutorials, reviews, Q&A, poetry, obfuscated code, as well as sections for code snippets and entire scripts and modules.
Generally, the section of the site with the most traffic is Seekers of Perl Wisdom, where users of all experience levels ask Perl-related questions. Some questions are from beginners trying to understand the basics of the language, while others are from seasoned veterans looking for methods to improve upon algorithms or to optimize performance. Those who provide answers are also of varying experience levels.
Much of the site's content consists of specific code examples. Some of these examples are for Perl's core features, as documented on the official Perl documentation website (http://perldoc.perl.org). Other examples are for the Comprehensive Perl Archive Network (CPAN), which is a repository for Perl libraries (known as modules) that are not part of the core Perl distribution.
The code that the site runs on is a much hacked fork of an early version of the Everything Engine and was created by Nathan Oostendorp [4] as part of Blockstackers Intergalactic — the firm that also ran Slashdot. As a result, PerlMonks has many features in common with both Everything2 and Slashdot like its strong emphasis placed on user feedback.
Another feature that PerlMonks retains from Everything is the Chatterbox, which is a text chat area at the side of every page. Logged-in users can type in anything they want, and it appears for all users to see. Talk in the chatterbox is often Perl related, and various tools (written in Perl) have been written to improve the chatterbox experience. Some come to PerlMonks primarily for the chatterbox. Others find the chatterbox distracting and turn it off.
The Comprehensive Perl Archive Network (CPAN) is a repository of over 250,000 software modules and accompanying documentation for 39,000 distributions, written in the Perl programming language by over 12,000 contributors. CPAN can denote either the archive network or the Perl program that acts as an interface to the network and as an automated software installer. Most software on CPAN is free and open source software.
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".
mod_perl is an optional module for the Apache HTTP server. It embeds a Perl interpreter into the Apache server. In addition to allowing Apache modules to be written in the Perl programming language, it allows the Apache web server to be dynamically configured by Perl programs. However, its most common use is so that dynamic content produced by Perl scripts can be served in response to incoming requests, without the significant overhead of re-launching the Perl interpreter for each request.
In computing, the Perl DBI offers a standardized way for programmers using the Perl programming language to embed database communication within their programs. The latest DBI module for Perl from CPAN can run on a range of operating systems.
A Perl module is a discrete component of software for the Perl programming language. Technically, it is a particular set of conventions for using Perl's package mechanism that has become universally adopted.
WebGUI is an open-source content management system written in Perl and released under the GNU General Public License.
Perl Data Language 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 manipulate those arrays as vector objects. It also provides tools for image processing, machine learning, computer modeling of physical systems, and graphical plotting and presentation. Simple operations are automatically vectorized across complete arrays, and higher-dimensional operations are supported.
Raku is a member of the Perl family of programming languages. Formerly named Perl 6, it was renamed in October 2019. Raku introduces elements of many modern and historical languages. Compatibility with Perl was not a goal, though a compatibility mode is part of the specification. The design process for Raku began in 2000.
Pugs is a compiler and interpreter for the Raku programming language, begun on 1 February 2005, by Audrey Tang. Raku was then called Perl 6.
The Perl Object Environment (POE) is a library of Perl modules written in the Perl programming language by Rocco Caputo et al.
Catalyst is an open-source web application framework written in Perl. It closely follows the model–view–controller (MVC) architecture and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.
A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".
Sean Michael Burke is a Perl programmer, author, and linguist. He was a columnist for The Perl Journal from 1998 and has written several dozen Perl modules for CPAN, as well as books for O'Reilly Media.
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 on the user having software development tools already set up to install certain Perl components, Strawberry Perl ships with the most commonly used tools preconfigured and packaged. It is a dramatic departure from other Perl distributions, and has influenced other distributions to provide such development tools in their own distribution.
Everything2 is a collaborative online community consisting of a database of interlinked user-submitted written material. E2 is moderated for quality, but has no formal policy on subject matter. Writing on E2 covers a wide range of topics and genres, including encyclopedic articles, diary entries, poetry, humor, and fiction.
Padre is a multi-language software development platform comprising an IDE and a plug-in system to extend it. It is written primarily in Perl and is used to develop applications in this language.
Dancer is an open source lightweight web application framework written in Perl and inspired by Ruby's Sinatra.
Mojolicious is a real-time web application framework, written by Sebastian Riedel, creator of the web application framework Catalyst. Licensed as free software under the Artistic License v 2.0, it is written in the Perl programming language, and is designed for use in both simple and complex web applications, based on Riedel's previous experience developing Catalyst. Documentation for the framework was partly funded by a grant from The Perl Foundation.
The following outline is provided as an overview of and topical guide to the Perl programming language:
Nathan Oostendorp is an American technologist, author, and entrepreneur. He is from Holland, Michigan and is a co-founder of the technology news website and community Slashdot and founder of the online community Everything2.