Portal:Perl

Portal:Engineering and Technology > School:Computer Science > Topic:Computer Programming > Topic:Perl

Perl, like Python and PHP is an essential part of a learning path such as Open Source Degree Confirmation, The Art of Computer Programming, Linux Server Administration or Web services Using LAMP.

LAMP: Linux | Apache | MySQL | PostgreSQL | Perl || Python || PHP.

Prerequisites
The usual Introduction to Programming and Introduction to Programming Logic, plus a broad selection of of CS topics of interest - to you. Walk your own path.

A suggestion: If you are leaning toward Web applications... A large percentage of Perl's real-world application has to do with the Web and Web Programming. If this is the route you're taking, Perl might be for you. If so, some fundamentals of Web Design are in order, particularly Web Design/Dynamic Websites and Web Design/Dynamic Websites/Creating Database Tables. While these learning materials lean toward Javascript and PHP, learners should be aware that Perl may offer a practical alternative in many cases.

Learners are advised to gain some understanding of related topics: CGI, Python, Databases, etc. and to approach the study of Perl with an open mind as a part of a larger study of Computer Science. Perl is many things, but it is NOT a panacea, silver bullet or stand-alone programming language. Its strength is being able to adapt and contribute to its environment.

Course Description
Perl has a rich set of text-processing tools, a flexible syntax, Unix-friendly familiarity, excellent documentation and a massive support community. We will learn that Perl comes with a host of standard built-in functions and another host of available functions that help the programmer write solid, reliable code. We will start with whole programs that touch the gamut of statements, variables, operators, functions, expressions, flow control, subroutines, objects and on to real-time, real-life, practical extraction and reporting linguistics.

Contrary to some schools of thought, Perl is not in competition with Python, PHP or even C/C++ but rather complementary providing a "glue" for filling in specific niché jobs. This course will show how to get tasks done and at the same time show some philosophical reasons why to use Perl for those specific jobs.

As we dig a little deeper, we'll learn about Perl within the context of applied Computer Science as a component of the ACS Practicum. We will use Perl to help demonstrate modularity, human-machine interfaces, database principles, API fundamentals, inter-process communication, lexical scoping and other theoretical aspects of Computer Science. 67.103.200.154 22:08, 10 December 2007 (UTC)

Lessons
See a Perl Hello, World!

Learning guides

 * Perl/Introduction - a casual orientation for those new to Perl
 * Perl/Perl.org an overview of Perl online resources
 * Perl/Using Perldoc an overview and guide to using Perl-doc (Perldoc), Perl man pages and documentation
 * Perl/Modules on CPAN - installing and using Perl modules from CPAN, the Comprehensive Perl Archive Network
 * Perl/Using CPAN - Working the CPAN shell
 * Perl/Installing on *Nix Systems - Perl on Linux, FreeBSD, and other Unixtm-like systems
 * Perl/Installing on Win32 Systems - Installing Activestatetm and other versions of Perl for Windowstm systems

Tutorials

 * Perl/Fun with Named Colors - Hands on exercise for building a color palette using Perl (Courtesy of WikiaPerl Wikia)
 * Developing a cool-looking 'Hello World'
 * Getting stats out of wikiversity XML dumps

Under Development and Wish List
These are lessons which have been suggested, or have been started but are still stub articles. Please help by adding to the content here.
 * Perl/Simple HTML Parser - Basic anatomy of a Parser built in Perl (Courtesy of PerlMonks.org)
 * A minimal perl shell
 * Advanced version of '99 Bottles of Beer'
 * find 'em or write 'em...

Enrolled
Please sign below if you're participating in the Perl topic. Use a hash mark, 4 tildes and any comment to sign.
 * 1) AdamG 15:57, 1 October 2006 (UTC) I'm interested in learning Perl. I know python scripting and would like to learn other languages for perspective/comparison.
 * 2) CQ 18:11, 10 October 2006 (UTC) I'm a novice Perl coder. I like the language and features of Perl and I helped create the WikiaPerl site, which desires to participate here at Wikiversity.
 * 3) Matthewdavid 10:25, 29 December 2006 (UTC) I am learning perl. I am a sys admin. Much of what I administrate is written in Perl and I'd like to be able to modify and create in the language.
 * 4) Cavac 2007-01-04; i wrote some Perl tutorials for my Blog and i'm gonna port them to Wikiversity.
 * 5) Ikluft 23:07, 21 July 2007 (UTC) I'm a Perl programmer. I'll look for chances to help in my spare time.  I started with turning the references section from a wish list to the links the original author apparently wanted.
 * 6) Patch 01:31, 21 December 2007 (UTC) I'm a novice perl programmer. I need something I can do on the fly and will stand up to my demands. Perl seems perfect for the job.
 * 7) --Albstp 11:53, 11 March 2008 (UTC)I am a newbie to Perl. I need to study perl as it is really interesting. I need to do some good perl programming.
 * 8) Spookcomix 00:20, 3 November 2008 (UTC) I'm currently transitioning from network administration to technical writing for a company that uses Perl behind their flagship products. I'm hoping to chip in at some point.
 * 9) Boris Suvorov 21:51pm, 30 November 2008 (UTC) I'm in need to learn perl to assist my company with special tools for developers. I also want to understand how Perl is applied to Web programming.
 * 10) BJ Covert Action 18:34, 16 January 2009 (UTC) I'm in the process of learning Perl for both recreation and professional purposes. I would love to help others learn by relating my own experience
 * 11) KStulce 12:59PM, 16 March 2009 (UTC) I've primarily used Perl in job-related workflow applications with the [PlanetPress Suite] for various customers, though I don't get the opportunity to use Perl very often.  I adore Perl and have scoured the Internet for various Perl resources, and I have also purchase many of the O'Reilly books, which I tend to read when the opportunity arises for new projects.  I'm in need to stay current and knowledgeable with Perl, even to the point of making up personal projects to stay on par, which I have seen posted in Topic_talk:Perl.

Resources

 * the English Wikipedia entry on Perl has a detailed description
 * CPAN Search search interface to the Comprehensive Perl Archive Network (CPAN)
 * Perl 5 Wiki at the Perl Foundation
 * Perl 6 Wiki at the Perl Foundation
 * WikiaPerl (yet another Perl Wiki)
 * Perl help, examples, and tutorials by John Bokma, freelance Perl programmer
 * A Crash Course in Perl5: all the slides for a 3-day introductory course, provided for free by Zeegee Software Inc., a CPAN contributor.

{| cellpadding="10" cellspacing="5" style="width: 100%; background-color: inherit; margin-left: auto; margin-right: auto"
 * style="width: 60%; background-color: cornsilk; border: 1px solid #777777; vertical-align: top; -moz-border-radius-topleft: 8px; -moz-border-radius-bottomleft: 8px; -moz-border-radius-topright: 8px; -moz-border-radius-bottomright: 8px;" rowspan="1" |

Documentation
The following subsections refer to official Perl documentation available from CPAN. These pages are also available locally by the same names as manpages or via POD documentation on any Unix (or Cygwin) perl installation.

Perl Overview

 * perl Perl overview
 * perlintro Perl introduction for beginners
 * perltoc Perl documentation table of contents

Perl Tutorials

 * perlreftut Perl references short introduction
 * perldsc Perl data structures intro
 * perl tutorial Perl Tutorial for beginners


 * perllol Perl data structures: arrays of arrays


 * perlrequick Perl regular expressions quick start
 * perlretut Perl regular expressions tutorial


 * perlboot Perl OO tutorial for beginners
 * perltoot Perl OO tutorial, part 1
 * perltooc Perl OO tutorial, part 2
 * perlbot Perl OO tricks and examples


 * perlstyle Perl style guide


 * perlcheat Perl cheat sheet
 * perltrap Perl traps for the unwary
 * perldebtut Perl debugging tutorial


 * perlfaq Perl frequently asked questions
 * perlfaq1 General Questions About Perl
 * perlfaq2 Obtaining and Learning about Perl
 * perlfaq3 Programming Tools
 * perlfaq4 Data Manipulation
 * perlfaq5 Files and Formats
 * perlarray] Perl Arrays
 * perlfaq6 Regexes
 * perlfaq7 Perl Language Issues
 * perlfaq8 System Interaction
 * perlfaq9 Networking

Perl Reference Manual

 * perlsyn Perl syntax
 * perldata Perl data structures
 * perlop Perl operators and precedence
 * perlsub Perl subroutines
 * perlfunc Perl built-in functions
 * perlopentut Perl open tutorial
 * perlpacktut Perl pack and unpack tutorial
 * perlpod Perl plain old documentation
 * perlpodspec Perl plain old documentation format specification
 * perlrun Perl execution and options
 * perldiag Perl diagnostic messages
 * perllexwarn Perl warnings and their control
 * perldebug Perl debugging
 * perlvar Perl predefined variables
 * perlre Perl regular expressions, the rest of the story
 * perlreref Perl regular expressions quick reference
 * perlref Perl references, the rest of the story
 * perlform Perl formats
 * perlobj Perl objects
 * perltie Perl objects hidden behind simple variables
 * perldbmfilter Perl DBM filters


 * perlipc Perl interprocess communication
 * perlfork Perl fork information
 * perlnumber Perl number semantics


 * perlthrtut Perl threads tutorial
 * perlothrtut Old Perl threads tutorial


 * perlport Perl portability guide
 * perllocale Perl locale support
 * perluniintro Perl Unicode introduction
 * perlunicode Perl Unicode support
 * perlebcdic Considerations for running Perl on EBCDIC platforms


 * perlsec Perl security


 * perlmod Perl modules: how they work
 * perlmodlib Perl modules: how to write and use
 * perlmodstyle Perl modules: how to write modules with style
 * perlmodinstall Perl modules: how to install from CPAN
 * perlnewmod Perl modules: preparing a new module for distribution
 * perlutil utilities packaged with the Perl distribution


 * perlcompile Perl compiler suite intro


 * perlfilter Perl source filters


 * perlglossary Perl Glossary

Perl Internals and C Language Interface

 * perlembed Perl ways to embed perl in your C or C++ application
 * perldebguts Perl debugging guts and tips
 * perlxstut Perl XS tutorial
 * perlxs Perl XS application programming interface
 * perlclib Internal replacements for standard C library functions
 * perlguts Perl internal functions for those doing extensions
 * perlcall Perl calling conventions from C


 * perlapi Perl API listing (autogenerated)
 * perlintern Perl internal functions (autogenerated)
 * perliol C API for Perl’s implementation of IO in Layers
 * perlapio Perl internal IO abstraction interface


 * perlhack Perl hackers guide

Miscellaneous

 * perlbook Perl book information
 * perltodo Perl things to do


 * perldoc Look up Perl documentation in Pod format


 * perlhist Perl history records
 * perldelta Perl changes since previous version
 * perl587delta Perl changes in version 5.8.7
 * perl586delta Perl changes in version 5.8.6
 * perl585delta Perl changes in version 5.8.5
 * perl584delta Perl changes in version 5.8.4
 * perl583delta Perl changes in version 5.8.3
 * perl582delta Perl changes in version 5.8.2
 * perl581delta Perl changes in version 5.8.1
 * perl58delta Perl changes in version 5.8.0
 * perl573delta Perl changes in version 5.7.3
 * perl572delta Perl changes in version 5.7.2
 * perl571delta Perl changes in version 5.7.1
 * perl570delta Perl changes in version 5.7.0
 * perl561delta Perl changes in version 5.6.1
 * perl56delta Perl changes in version 5.6
 * perl5005delta Perl changes in version 5.005
 * perl5004delta Perl changes in version 5.004


 * perlartistic Perl Artistic License
 * perlgpl GNU General Public License

Language-Specific

 * perlcn Perl for Simplified Chinese (in EUC-CN)
 * perljp Perl for Japanese (in EUC-JP)
 * perlko Perl for Korean (in EUC-KR)
 * perltw Perl for Traditional Chinese (in Big5)

Platform-Specific

 * perlaix Perl notes for AIX
 * perlamiga Perl notes for AmigaOS
 * perlapollo Perl notes for Apollo DomainOS
 * perlbeos Perl notes for BeOS
 * perlbs2000 Perl notes for POSIX-BC BS2000
 * perlce Perl notes for WinCE
 * perlcygwin Perl notes for Cygwin
 * perldgux Perl notes for DG/UX
 * perldos Perl notes for DOS
 * perlepoc Perl notes for EPOC
 * perlfreebsd Perl notes for FreeBSD
 * perlhpux Perl notes for HP-UX
 * perlhurd Perl notes for Hurd
 * perlirix Perl notes for Irix
 * perllinux Perl notes for Linux
 * perlmachten Perl notes for Power MachTen
 * perlmacos Perl notes for Mac OS (Classic)
 * perlmacosx Perl notes for Mac OS X
 * perlmint Perl notes for MiNT
 * perlmpeix Perl notes for MPE/iX
 * perlnetware Perl notes for NetWare
 * perlopenbsd Perl notes for OpenBSD
 * perlos2 Perl notes for OS/2
 * perlos390 Perl notes for OS/390
 * perlos400 Perl notes for OS/400
 * perlplan9 Perl notes for Plan 9
 * perlqnx Perl notes for QNX
 * perlsolaris Perl notes for Solaris
 * perltru64 Perl notes for Tru64
 * perluts Perl notes for UTS
 * perlvmesa Perl notes for VM/ESA
 * perlvms Perl notes for VMS
 * perlvos Perl notes for Stratus VOS
 * perlwin32 Perl notes for Windows
 * }

Perl