Perl Resources

Perl resources
Perl has changed a lot in the last 10 years. If you’ve ever wanted to get into Perl, you may have seen plenty of hairy, write-only, ob-fu contest-winning dirty old Perl. That’s called “bad programming”, please ignore it. You can write FORTRAN in any language.

You should be writing Modern Perl.
You should be starting with use strict and use warnings (and if you’re writing in Perl 5.12, use strict is already there by default).

While Perl may be more popular in areas such as genetic research, it has plenty to offer for web developers, especially with the Perl revolution spitting out several (too many to count!) web frameworks, applications, and cool modules. It’s running large websites like Amazon and Slashdot, the New York Times and the BBC, and plenty of small ones such as the search engine [url=https://duckduckgo.com/]DuckDuckGo. Perl is still about “Making easy things easy and hard things possible.”

Coming from Ruby or Python? Read this little blurb Practical Modern Perl for Ruby and Python People (2010)

Note on spelling: “Perl” generally refers to the language itself. “perl” generally refers to the interpreter. “PERL” isn’t used, except by old Unix guys used to everything being spelled that way, and people who believe PERL is an acronym for Practical Extraction and Report Language. Or Pathologically Eclectic Rubbish Lister. Or any of the others too impolite to mention here.

Perl distributions
Of course, if you’re running Linux, FreeBSD, Mac OSX or some other *nix, you likely already have Perl : ) However, you may not have the latest Perl.
Downloading the latest version of Perl
Windows:

Perl 6:
Perl 6 is not an upgrade of Perl 5. It is instead a new language in the Perl family, written from the ground up. Perl 5 has been able to take many new ideas from Perl 6 and continues to evolve as “Perl 5”, but for those interested in Perl 6, here are some links:

Looking for a Perl IDE?

  • Komodo IDE - from ActiveState
  • Padre - Perl IDE, also for Perl 6
  • EPIC - Perl editor and IDE for Eclipse

Perl documentation

Regular Expressions Documentation/Tutorials
Besides CPAN, regexen are one of Perl’s greatest strengths

Perl modules

Perl developer communities

Perl books
I’ve listed most of these with Amazon.com links, where you can grab the ISBN and read reviews, even if it’s not the bookstore for you (note: free international shipping? look for books at Book Depository).
General and beginning books

Advanced and specialty books

Databases, Apache, CGI, etc

Perl tutorials, articles
Tuts/Refs

Debugging!

Frequent “gotchas” and things to be aware of

Articles/Blogs (rather random selection really)

Oldies but still on the must-read list:

SitePoint

Perl scripts
If you have been running scripts from Matt’s Script Archive, please try nms instead.
Specifically, if you’re looking for FormMail, on the programs page look for TFMail, the Improved Form Mail script. Any script that instructs you to have hidden input fields containing email addresses in your HTML should be avoided!!

Beyond vanilla Perl
CGI:
You can use plain CGI, but there’s more than that out there:

Frameworks:

These are only some Perl frameworks listed above; there are more: Gantry, [url=http://code.google.com/p/rose/]Rose, [url=http://jifty.org/view/HomePage]Jifty and [url=http://www.perlfoundation.org/perl5/index.cgi?webgui]WebGUI just to name a few of the web frameworks. [url=http://www.perlfoundation.org/perl5/index.cgi?web_frameworks]Read more about Perl frameworks and how to find the right one for you.

Content Management Systems

Templating Libraries:

Windows Modules:

  • Win32::OLE - an interface to OLE Automation from Perl. OLE Automation brings VisualBasic-like scripting capabilities and offers powerful extensibility and the ability to control many Win32 applications from Perl scripts
  • Spreadsheet::WriteExcel - Runs on *nix too
  • Spreadsheet::ParseExcel - Runs on *nix too

Databases:

Usenet groups

  • http://www.nntp.perl.org/group/ - nntp perl groups
  • comp.lang.perl.misc - Miscellaneous Perl stuff
  • comp.lang.perl.announce - Perl-related announcements
  • comp.lang.perl.modules - discussions on Perl modules
  • comp.lang.perl.tk - discussions on Perl/Tk

If you notice any typos, bad links, or feel an important resource has been left out (but, notice how long this is and how much I’ve still left out), send a PM to a moderator (anyone in green or blue).
-> PM [COLOR=“Green”]Mittineague[/COLOR]

happy hacking,
!japh