Difference between revisions of "Perl"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
m (→‎Questions: code from Tene)
(→‎Reference: official perl 6 doc)
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{seed}}[[Computing]]: [[Programming]]: [[Perl]]
+
[[computing]]: [[software]]: [[programming]]: [[Perl]]{{seedling}}
 +
==Overview==
 +
[[Perl]] is a programming language widely used for web sites and [[Linux]] servers. It can be somewhat baffling to the eye – largely due to the frequent use of [[Perl regex|regular expressions]] – but due to its popularity it has been greatly refined and there is a large base of existing code available for reuse.
 +
==Articles==
 +
===Usage===
 +
* [[Perl reference]]
 +
* [[Perl built-in functions]]
 +
* [[Perl regex]]
 +
* '''official documentation'''
 +
** [[perl manpage]]
 +
===Design===
 +
* [[Perl vs. PHP]]
 +
==Links==
 +
===Reference===
 +
* [http://perl.org official Perl web site]
 +
* {{wikipedia|Perl}}
 +
* [http://www.cpan.org/ CPAN]: documentation links at the Comprehensive Perl Archive Network
 +
* '''Perl 6''''s official release is expected any month now:
 +
** [http://perlcabal.org/syn/ Official Perl 6 Documentation]
 +
 
 +
===Tutorials===
 +
* From the Perl Advent Calendar (2006):
 +
** [http://perladvent.pm.org/2006/1/ Good things come in small packages]: the standard profiler and a new line-by-line profiler
 +
** [http://perladvent.pm.org/2006/2/ Peeking under the tree]: an object-oriented directory-tree spider
 +
** [http://perladvent.pm.org/2006/4/ Are you naughty or nice?]: a lighter version of the CGI module
 +
** [http://perladvent.pm.org/2006/9/ Made my sister eat a bug]: the Perl debugger, and an alternative
 +
** [http://perladvent.pm.org/2006/11/ Putting Tinsel on the Tree]: using GD and GD::Simple graphics-drawing libraries
  
[[Perl]] is a programming language widely used for web sites and [[Linux]] servers. It can be somewhat baffling to the eye – largely due to the frequent use of [[Perl regex|regular expressions]] – but due to its popularity it has been greatly refined and there is a large base of existing code available for reuse.
+
===Other===
 +
* [http://feather.perl6.nl:8080/cgi-bin/runpugs? PUGS], the Perl6 User's Golfing System: online simulation of Perl6
 +
* [[Larry Wall]]'s writings:
 +
** [http://www.wall.org/~larry/pm.html Perl, the first postmodern computer language]
 +
** '''2006-09-06''' [http://interviews.slashdot.org/interviews/02/09/06/1343222.shtml?tid=145  Larry Wall On Perl, Religion, and...]: mostly about Perl6, with some religious discussion
  
==Articles==
 
*[[Perl built-in functions]]
 
*[[Perl regex]]
 
==Other Documentation==
 
*[http://www.cpan.org/ CPAN]: documentation links at the Comprehensive Perl Archive Network
 
 
==Libraries and Modules==
 
==Libraries and Modules==
*[http://search.cpan.org/ CPAN]: search the Comprehensive Perl Archive Network
+
* '''Collections''':
==Questions==
+
** [http://search.cpan.org/ CPAN]: search the Comprehensive Perl Archive Network
* Is it possible to intercept errors in Perl? This is especially critical when developing web applications, as a crashed Perl program will return a failure code to the web server (usually Apache), causing either a "500 Internal Server" error due to "premature end of script headers" or else a truncation of the output (with no apparent cause). Tracing these errors is especially difficult since Perl has no block-comment syntax (that I know of). '''Follow-up''': [http://www.perl.com/pub/a/2002/11/14/exception.html this] would seem to be a guide to exception-handling in Perl. Also [http://search.cpan.org/~pjordan/Exception-1.7/Exception.pm this]. And this: "use CGI::Carp qw(fatalsToBrowser);"
+
* '''Frequently-used libraries''':
 +
** [[Perl DBI]]: database interface
 +
** [http://search.cpan.org/~jzucker/DBD-AnyData-0.08/AnyData.pm DBD::AnyData]: handles a number of common data formats (expandable) with a DBI-like API
 +
** [http://search.cpan.org/~stevan/Moose/lib/Moose.pm Moose]: an improved [[object-oriented programming|OOP]] module for Perl5 (Perl6 has better OOP built in)
 +
* '''Frameworks'''
 +
** [[Catalyst (framework)|Catalyst]]: web applications
 +
 
 +
==Notes==
 +
* Although single-quoted strings are widely cited as not interpreting anything, you do have to backslash certain characters if you want them represented literally:
 +
** the single-quote itself ( \' )
 +
** the backslash character ( \\ )
 +
* One of the reasons for [[PHP]]'s popularity over [[Perl vs. PHP|Perl]] for developing web applications is that it prints errors to the web browser, rather than simply quitting abruptly (causing either an incomplete page or, more likely, a 5xx Server Error). Perl does not do this by default. It is, however, quite easy to make this happen, by including the following line of code near the beginning of a program:
 +
use CGI::Carp qw(fatalsToBrowser);
 +
* Although there is apparently no formal block-quote syntax (like /* */ in c/c++), a syntax used for documentation seems to accomplish the same thing. It's not presently known whether this is documented anywhere. "=''anystring''", at the beginning of a line, starts a block comment, and "=cut" at the beginning of a line ends the comment. This has not been tested thoroughly, but the exact string "cut" does seem to be necessary. Example:
 +
regular_code_here();
 +
==something
 +
This part is commented, i.e. ignored by the parser.
 +
Anything up until the "cut" line.
 +
==cut
 +
more_code();

Latest revision as of 01:32, 28 April 2007

computing: software: programming: Perl

This is a growing seedling article. You can help HTYP by watering it.

Overview

Perl is a programming language widely used for web sites and Linux servers. It can be somewhat baffling to the eye – largely due to the frequent use of regular expressions – but due to its popularity it has been greatly refined and there is a large base of existing code available for reuse.

Articles

Usage

Design

Links

Reference

Tutorials

Other

Libraries and Modules

  • Collections:
    • CPAN: search the Comprehensive Perl Archive Network
  • Frequently-used libraries:
    • Perl DBI: database interface
    • DBD::AnyData: handles a number of common data formats (expandable) with a DBI-like API
    • Moose: an improved OOP module for Perl5 (Perl6 has better OOP built in)
  • Frameworks

Notes

  • Although single-quoted strings are widely cited as not interpreting anything, you do have to backslash certain characters if you want them represented literally:
    • the single-quote itself ( \' )
    • the backslash character ( \\ )
  • One of the reasons for PHP's popularity over Perl for developing web applications is that it prints errors to the web browser, rather than simply quitting abruptly (causing either an incomplete page or, more likely, a 5xx Server Error). Perl does not do this by default. It is, however, quite easy to make this happen, by including the following line of code near the beginning of a program:
use CGI::Carp qw(fatalsToBrowser);
  • Although there is apparently no formal block-quote syntax (like /* */ in c/c++), a syntax used for documentation seems to accomplish the same thing. It's not presently known whether this is documented anywhere. "=anystring", at the beginning of a line, starts a block comment, and "=cut" at the beginning of a line ends the comment. This has not been tested thoroughly, but the exact string "cut" does seem to be necessary. Example:
regular_code_here();
==something
This part is commented, i.e. ignored by the parser.
Anything up until the "cut" line.
==cut
more_code();