Outline of Perl
From Wikipedia, the free encyclopedia
The following outline is provided as an overview of and topical guide to the Perl programming language:
Perl – high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier.[1] Since then, it has undergone many changes and revisions and become widely popular amongst programmers. Larry Wall continues to oversee development of the core language, and its upcoming version, Perl 6.
What Perl is
- Perl can be described as all of the following:
- Programming language – 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.
- General-purpose programming language – programming language designed to be used for writing software in a wide variety of application domains.
- High-level programming 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 – 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 – programming language (usually a scripting language) used for connecting software components together.
- Dynamic programming language – high-level programming language that executes at runtime many common behaviors 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.
- Scripting language – 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.
- 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.
- Free and open-source software – 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.[2]
- Free software – 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 – 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.
- Programming language – 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.
Other names for Perl
- Backronyms that describe Perl while treating it as an acronym:
- Other descriptions
- Duct tape for the Internet[5]
- Swiss Army chainsaw of scripting languages
Components of Perl
- Perl language structure
- 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
- CTPP
- DBIx::Class
- Gtk2-Perl
- Mason
- Moose
- Perl Data Language (PDL)
- Perl DBI
- Perl Object Environment
- Template Toolkit
- Tk – for building Perl programs with a graphical user interface
- Webpage-related modules – for creating, serving, fetching, and parsing web pages
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. -
#
– 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.
Features of Perl
- Main structure (derived from C)
- Variables
- Expressions
- Assignment statements
- Brace-delimited
- Blocks
- Control structures
- Subroutines
Programming tools
Text editors that support Perl scripting
- 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[1] 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.
Perl support
Websites
Perl on IRC
Further information: Internet Relay Chat
IRC Network | Channels |
---|---|
irc.freenode.net | #perl #perl6 #cbstream #perlcafe #poe |
irc.perl.org | #moose #poe #catalyst #dbix-class #perl-help #distzilla #epo #corehackers #sdl #win32 #toolchain #padre |
irc.slashnet.org | #perlmonks |
irc.oftc.net | #perl |
irc.efnet.net | #perlhelp |
irc.rizon.net | #perl |
irc.debian.org | #debian-perl |
History of Perl
Versions of Perl
Publications about Perl
Books about Perl
- Programming Perl (aka the Camel Book)
- Learning Perl (aka the Llama Book[6])
- Intermediate Perl
- Mastering Perl
- Advanced Perl Programming
- Effective Perl Programming
- Higher-Order Perl
- Perl Best Practices
- Perl Cookbook
- Perl Design Patterns Book
- Pro Perl Debugging'
Magazines about Perl
- The Perl Review
Perl software
Commercial software programmed in Perl
- Anti-Spam SMTP Proxy
- AxKit
- BackupPC
- Big Medium
- BioMOBY
- BioPerl
- Bonsai
- Bricolage
- Catalyst
- CGIProxy
- cPanel
- Comparison of sites using the LiveJournal codebase
- Cowsay
- Dada Mail
- Dancer
- Debian bug tracking system
- DJabberd
- Fink
- Frozen Bubble
- GCfilms
- GCstar
- Greymatter
- IComic
- I cont.
- Ikonboard
- Infobot
- LedgerSMB
- LiveJournal
- Logitech Media Server
- Majordomo
- MARC
- Mason
- Matt's Script Archive
- Maypole framework
- Mojolicious
- Movable Type
- NTP pool
- OTRS
- Padre
- Perl Archive Toolkit
- Perl Object Environment
- Perl Shell
- Perlbal
- PerlPage
- Plack
- POPFile
- ProBoards
- Qpsmtpd
- Reaction
- Request Tracker
- Scoop
- Sorune
- SpamAssassin
- Sprog
- SQL-Ledger
- Strawberry Perl
- SVK
- TWiki
- UBB.classic
- V6
- VERTCON
- Vipul's Razor
- WebGUI
- Webmin
- Website Meta Language
- WikiWikiWeb
- World Wide Mart
- Xuheki
Free software programmed in Perl
- Agora – 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 – 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 – 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 – 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.
- Clonezilla – disaster recovery, disk cloning, disk imaging and deployment solution.
- Dada Mail – 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 – 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 – 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 – 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 – 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.
- Interchange – e-commerce web application server and platform for building customized e-commerce and catalog solutions.
- 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 – 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 – 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.
- Pandora FMS – Pandora Flexible Monitoring System, a software solution for monitoring computer networks.
- 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 – 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 – 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 – 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 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 – wiki 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 with the classic skin.
- VTK – Visualization Toolkit (VTK) is an open-source, freely available software system for 3D computer graphics, image processing and visualization.
- W3Perl – 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 – 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 organizations
- The Perl Foundation
- Perl Monks
Perl personalities
- Larry Wall
- Sean M. Burke
- Chromatic
- Dave Cross
- Ask Bjørn Hansen
- Allison Randal
- David Rolsky
- Lincoln Stein
- Dan Sugalski
Perl writers
- Tom Christiansen
- chromatic
- Damian Conway
- Simon Cozens
- Dave Cross
- Mark Jason Dominus
- brian d foy
- Neil J. Gunther
- Jarkko Hietaniemi
- Allison Randal
- David Rolsky
- Randal L. Schwartz
- Audrey Tang
- Larry Wall
See also
- Perl Data Language
- Perl Object Environment
- Plain Old Documentation
- Obfuscated Perl Contest
- Perl golf
- Just another Perl hacker
- Yet Another Perl Conference
- Obfuscated Perl Contest
- There's more than one way to do it (TMTOWTDI)
References
- ↑ Sheppard, Doug (2000-10-16). "Beginner's Introduction to Perl". dev.perl.org. Retrieved 2011-01-08.
- ↑ Free Software Foundation. "What is free software?". Retrieved 14 December 2011.
- ↑ Richardson, Marjorie (1999-05-01). "Larry Wall, the Guru of Perl". Linux Journal. Retrieved 2011-01-03.
- ↑ Wall, Larry. "perl - The Perl language interpreter". Perl 5 version 12.2 documentation. Retrieved 2011-01-26.
- ↑ Tim O'Reilly quoting Hassan Schroeder, Sun's first webmaster]
- ↑ Castro, Elizabeth (2001). Perl and CGI for the World Wide Web. Peachpit Press. p. 314. ISBN 978-0-201-73568-0. Retrieved June 23, 2011.
External links
Find more about Perl at Wikipedia's sister projects | |
Definitions and translations from Wiktionary | |
Media from Commons | |
Quotations from Wikiquote | |
Source texts from Wikisource | |
Textbooks from Wikibooks | |
Learning resources from Wikiversity | |
- This outline displayed as a mindmap, at wikimindmap.com
- Official website Perl.org
- Comprehensive Perl Archive Network – the canonical location for Perl code and modules
- The Perl Foundation
- PLEAC-Perl – Programming Language Examples Alike Cookbook
- Community support
- PerlMonks – a community committed to sharing Perl knowledge and coding tips
- Perl mailing lists – discuss Perl programming and Perl-related issues
- Free Perl tutorials
- Perl in 10 easy lessons at Linux Forums
- Perl Maven Tutorial – a beginner and an advanced tutorial
- Learning Perl – includes examples
- Learn Perl in about 2 hours 30 minutes – introductory tutorial
- Introductory Perl Tutorial Course for Windows – includes CGI instruction.
- Essential Perl – from the Computer Science Library, Stanford University
- Free on-line books about Perl
- Practical Perl Programming – book by A.D. Marshall, Cardiff University
- Beginning Perl – free on-line book by Simon Cozens. Covers Perl 5.6
- Modern Perl – free on-line book by chromatic
- 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
|
This article is issued from Wikipedia. The text is available under the Creative Commons Attribution/Share Alike; additional terms may apply for the media files.