NAME
perlcheat - Perl 5 Cheat Sheet
DESCRIPTION
This 'cheat sheet' is a handy reference, meant for beginning Perl pro-
grammers. Not everything is mentioned, but 194 features may already be overwhelming. The sheetCONTEXTS SIGILS ARRAYS HASHES
void $scalar whole: @array %hash
scalar @array slice: @array[0, 2] @hash{'a', 'b'}list %hash element: $array[0] $hash{'a'}
&sub *glob SCALAR VALUES number, string, reference, glob, undef REFERENCES\ references $$foo[1] aka $foo->[1]
$@%&* dereference $$foo{bar} aka $foo->{bar}
[] anon. arrayref ${$$foo[1]}[2] aka $foo->[1]->[2]
{} anon. hashref ${$$foo[1]}[2] aka $foo->[1][2]
\() list of refs NUMBERS vs STRINGS LINKS OPERATOR PRECEDENCE = = perl.plover.com-> + . search.cpan.org
++ - == != eq ne cpan.org
** < > <= >= lt gt le ge pm.org! ~ \ u+ u- <=> cmp tpj.com
=~ !~ perldoc.com* / % x SYNTAX
+ - . for (LIST) { }, for (a;b;c) { }
<< >> while ( ) { }, until ( ) { } named uops if ( ) { } elsif ( ) { } else { } < > <= >= lt gt le ge unless ( ) { } elsif ( ) { } else { } == != <=> eq ne cmp for equals foreach (ALWAYS) & | ^ REGEX METACHARS REGEX MODIFIERS && ^ string begin /i case insens.|| $ str. end (before \n) /m line based ^$
.. ... + one or more /s . includes \n ?: * zero or more /x ign. wh.space= += -= *= etc. ? zero or one /g global
, => {3,7} repeat in range list ops () capture REGEX CHARCLASSES not (?:) no capture . == [^\n] and [] character class \s == [\x20\f\t\r\n]or xor | alternation \w == [A-Za-z0-9]
\b word boundary \d == [0-9]
\z string end \S, \W and \D negate DO use strict; DON'T LINKSuse warnings; "$foo" perl.com
my $var; $$variablename perlmonks.org
open() or die $!; `$userinput` use.perl.org
use Modules; /$userinput/ perl.apache.org
parrotcode.org FUNCTION RETURN LISTS stat localtime caller SPECIAL VARIABLES0 dev 0 second 0 package $ default variable
1 ino 1 minute 1 filename $0 program name
2 mode 2 hour 2 line $/ input separator
3 nlink 3 day 3 subroutine $\ output separator
4 uid 4 month-1 4 hasargs $| autoflush
5 gid 5 year-1900 5 wantarray $! sys/libcall error
6 rdev 6 weekday 6 evaltext $@ eval error
7 size 7 yearday 7 isrequire $$ process ID
8 atime 8 isdst 8 hints $. line number
9 mtime 9 bitmask @ARGV command line args 10 ctime just use @INC include paths 11 blksz POSIX:: 3..9 only @ subroutine args12 blcks strftime! with EXPR %ENV environment
AACCKKNNOOWWLLEEDDGGEEMMEENNTTSSThe first version of this document appeared on Perl Monks, where sev-
eral people had useful suggestions. Thank you, Perl Monks. A special thanks to Damian Conway, who didn't only suggest important changes, but also took the time to count the number of listed features and make a Perl 6 version to show that Perl will stay Perl. AUTHOR Juerd Waalboer, with the help of many Perl Monks. SEE ALSO
http://perlmonks.org/?nodeid=216602 the original PM post http://perlmonks.org/?nodeid=238031 Damian Conway's Perl 6 versionhttp://juerd.nl/site.plp/perlcheat home of the Perl Cheat Sheet
perl v5.8.6 2004-11-05 PERLCHEAT(1)