This 'cheat sheet' is a handy reference, meant for beginning Perl programmers. Not everything is mentioned, but 194 features may already be overwhelming.http://search.cpan.org/~nwclark/perl-5.8.7/pod/perlcheat.pod
|
AUTHOR
|
Juerd Waalboer, with the help of many Perl Monks.
|
|
the original PM post
|
|
|
Damian Conway's Perl 6 version
|
|
|
home of the Perl Cheat Sheet
|
|
void
|
|
scalar
|
|
list
|
|
$scalar
|
|
@array
|
|
%hash
|
|
&sub
|
|
*glob
|
|
ARRAYS
|
HASHES
|
|
|
whole:
|
@array
|
%hash
|
|
slice:
|
@array[0, 2]
|
@hash{'a', 'b'}
|
|
element:
|
$array[0]
|
$hash{'a'}
|
|
for (LIST) { }, for (a;b;c) { }
|
|
while ( ) { }, until ( ) { }
|
|
if ( ) { } elsif ( ) { } else { }
|
|
unless ( ) { } elsif ( ) { } else { }
|
|
for equals foreach (ALWAYS)
|
|
Search the CPAN - metacpan.org
|
|
|
Perl Weekly
|
|
|
PerlMonks - The Monastery Gates
|
|
|
What's happening in the world of Perl programming, including Perl 5, Perl 6, the CPAN and Parrot?
|
|
|
The Comprehensive Perl Archive Network - www.cpan.org
|
|
|
News and views of the Perl programming language
|
|
|
Perl programming documentation - perldoc.perl.org
|
|
|
Perl Conferences, YAPCs, Workshops, and Hackathons
|
|
|
Perl 6
|
|
|
Perl 6 Tablet 2 - Basic Syntax
|
|
|
Learn Perl - learn.perl.org
|
|
|
Perl - Download
|
|
|
The Perl.org Online Library
|
|
|
Books and More (Videos)
|
|
|
Padre, the Perl IDE
|
|
|
perlcheat
|
|
|
Gabor Szabo Perl Trainer and developer
|
|
|
Perl,Perl Mongers,Mongers,User Group,Meeting
|
|
|
Facebook vs Google+ for Perl projects
|
|
|
Lections about Per from Gabor Szabo
|
|
|
mod_perl world
|
|
|
Interpreted Languages: PHP, Perl, Python, Ruby (Sheet One)
|
|
|
Moose - A postmodern object system for Perl
|
|
|
Perl Training Australia - Perl Tips
|
|
|
Basic Perl (Ynon Perek | An Amazing Learning Experience) , super
|
|
|
Perl Questions - Stack Overflow
|
|
|
Perl - Cheat sheets Collection
|
|
|
complete, working examples of good Perl code
|
|
|
Perl Programming Tutorials
|
|
|
Video from UniverTV
|
|
|
FAQ по perl и программированию для web
|
|
|
FAQ PERL Agava
|
|
Modern::Perl
enable all of the features of Modern Perl with one import
|
|
Toolkit
use Toolkit; and put all your favorite modules in a file: > cat $PERL5LIB/Toolkit/Macros/ALWAYS/Modules use strict; use warnings; use Carp; use Smart::Comments;
|
|
use common::sense;
supposed to be the same, with much lower memory usage, as: # # use strict qw(vars subs); # use feature qw(say state switch); # no warnings; # use warnings qw(FATAL closed threads internal debugging pack substr malloc # unopened portable prototype inplace io pipe unpack regexp # deprecated exiting glob digit printf utf8 layer # reserved parenthesis taint closure semicolon); # no warnings qw(exec newline);
|
|
latest
There is latest, which is no longer the latest. Demonstrates part of the naming problem.
|
|
uni::perl
Also, uni::perl which adds enabling unicode part of the mix.
|
|
ToolSet
ToolSet offers a subset of Toolkit's abilities, but without source filters.
|
|
Moose
I'll include Moose here, since it automatically adds strict and warnings to the calling package.
|
|
Acme::Very::Modern::Perl
Using this module, you'll get Modern::Perl, Toolkit, latest, uni::perl, perl5i, and common::sense with just one simple line.
|
|
Source
|
|
^
|
string begin
|
|
$
|
str. end (before \n)
|
|
+
|
one or more
|
|
*
|
zero or more
|
|
?
|
zero or one
|
|
{3,7}
|
repeat in range
|
|
()
|
capture
|
|
(?:)
|
no capture
|
|
[]
|
character class
|
|
|
|
alternation
|
|
\b
|
word boundary
|
|
\z
|
string end
|
|
.
|
[^\n]
|
|
\s
|
[\x20\f\t\r\n]
|
|
\w
|
[A-Za-z0-9_]
|
|
\d
|
[0-9]
|
|
\S, \W and \D
|
negate
|
|
/i
|
case insens.
|
|
/m
|
line based ^$
|
|
/s
|
. includes \n
|
|
/x
|
ign. wh.space
|
|
/g
|
global
|
|
\Q
|
quote (disable) pattern metacharacters till \E
|
|
\E
|
end either case modification or quoted section, think vi
|
|
stat
|
localtime
|
caller
|
|
0 dev
|
0 second
|
0 package
|
|
1 ino
|
1 minute
|
1 filename
|
|
2 mode
|
2 hour
|
2 line
|
|
3 nlink
|
3 day
|
3 subroutine
|
|
4 uid
|
4 month-1
|
4 hasargs
|
|
5 gid
|
5 year-1900
|
5 wantarray
|
|
6 rdev
|
6 weekday
|
6 evaltext
|
|
7 size
|
7 yearday
|
7 is_require
|
|
8 atime
|
8 is_dst
|
8 hints
|
|
9 mtime
|
9 bitmask
|
|
|
10 ctime
|
just use
|
|
|
11 blksz
|
POSIX::
|
3..9 only
|
|
12 blcks
|
with EXPR
|
|
|
source
|
|
|
Padre
|
http://padre.perlide.org/ The Perl Application Development and Refactoring Environment (written in Perl 5)
|
|
Eclipse
|
with the EPIC plugin http://www.epic-ide.org/ or with Perlipse http://code.google.com/p/perlipse/ using dltk
|
|
ActiveState
|
proprietary Komodo IDE http://www.activestate.com/Products/komodo_ide/ or free Komodo Edit http://www.activestate.com/Products/komodo_ide/komodo_edit.mhtml
|
|
Kephra
|
http://kephra.sourceforge.net Programmers Editor along perl-like Paradigms, written in Perl
|
|
Gvim
|
www.vim.org with Perl support http://www.vim.org/scripts/script.php?script_id=556
|
|
Emacs
|
|
|
Perl Development Tools
|
|
\t
|
tab (HT, TAB)
|
|
\n
|
newline (LF, NL)
|
|
\r
|
return (CR)
|
|
\f
|
form feed (FF)
|
|
\a
|
alarm (bell) (BEL)
|
|
\e
|
escape (think troff) (ESC)
|
|
\cK
|
control char (example: VT)
|
|
\x{}, \x00
|
character whose ordinal is the given hexadecimal number
|
|
\N{name}
|
amed Unicode character or character sequence
|
|
\N{U+263D}
|
Unicode character (example: FIRST QUARTER MOON)
|
|
\o{}, \000
|
character whose ordinal is the given octal number
|
|
\l
|
lowercase next char (think vi)
|
|
\u
|
uppercase next char (think vi)
|
|
\L
|
lowercase till \E (think vi)
|
|
\U
|
uppercase till \E (think vi)
|
|
\Q
|
quote (disable) pattern metacharacters till \E
|
|
\E
|
end either case modification or quoted section, think vi
|
|
\
|
$$foo[1] ==
|
|
references
|
$foo->[1]
|
|
$@%&*
|
$$foo{bar}==
|
|
dereference
|
$foo->{bar}
|
|
{}
|
${$$foo[1]}[2]==
|
|
anon. hashref
|
$foo->[1]->[2]
|
|
\()
|
${$$foo[1]}[2]==
|
|
list of refs
|
$foo->[1][2]
|
|
$_
|
default variable
|
|
$0
|
program name
|
|
$/
|
input separator
|
|
$\
|
output separator
|
|
$|
|
autoflush
|
|
$!
|
sys/libcall error
|
|
$@
|
eval error
|
|
$$
|
process ID
|
|
$.
|
line number
|
|
@ARGV
|
command line args
|
|
@INC
|
include paths
|
|
@_
|
subroutine args
|
|
%ENV
|
environment
|
|
NUMBERS
|
STRINGS
|
|
=
|
=
|
|
.
|
.
|
|
== !=
|
eq ne
|
|
< > <= >=
|
lt gt le ge
|
|
<=>
|
cmp
|
|
use Modern::Perl;
|
|
use strict;
|
|
use warnings;
|
|
my $var;
|
|
open() or die $!;
|
|
use Modules;
|
|
"$foo"
|
|
$$variable_name
|
$userinput |
|
/$userinput/
|
|
->
|
|
++ --
|
|
**
|
|
! ~ \ u+ u-
|
|
= !
|
|
* / % x
|
|
+ - .
|
|
<< >>
|
|
named uops
|
|
< > <= >= lt gt le ge
|
|
== != <=> eq ne cmp
|
|
&
|
|
| ^
|
|
&&
|
|
||
|
|
.. ...
|
|
?:
|
|
= += -= *= etc.
|
|
, =>
|
|
list ops
|
|
not
|
|
and
|
|
or xor
|
|
perlcheat
|
|
perl-reference-card
|
|
20-killer-perl-programming-tips
|
Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.