perlcheat - Perl 5 Cheat Sheet
This 'cheat sheet' is a handy reference, meant for beginning Perl programmers. Not everything is mentioned, but 194 features may already be overwhelming.
CONTEXTS SIGILS ARRAYS HASHESvoid $scalar whole: @array %hashscalar @array slice: @array[0, 2] @hash{'a', 'b'}list %hash element: $array[0] $hash{'a'} &sub *glob SCALAR VALUES number, string, reference, glob, undefREFERENCES\ 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 LINKSOPERATOR 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 rangelist ops () capture REGEX CHARCLASSESnot (?:) 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 negateDOuse strict; DON'T LINKSuse warnings; "$foo" perl.commy $var; $$variable_name perlmonks.orgopen() or die $!; `$userinput` use.perl.orguse Modules; /$userinput/ perl.apache.org parrotcode.orgFUNCTION RETURN LISTSstat localtime caller SPECIAL VARIABLES 0 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 is_require $$ process ID 8 atime 8 is_dst 8 hints $. line number 9 mtime 9 bitmask @ARGV command line args10 ctime just use @INC include paths11 blksz POSIX:: 3..9 only @_ subroutine args12 blcks strftime! with EXPR %ENV environmentThe first version of this document appeared on Perl Monks, where several 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.
Juerd Waalboer <juerd@cpan.org>, with the help of many Perl Monks.
http://perlmonks.org/?node_id=216602 the original PM posthttp://perlmonks.org/?node_id=238031 Damian Conway's Perl 6 versionhttp://juerd.nl/site.plp/perlcheat home of the Perl Cheat SheetPerldoc Browser is maintained by Dan Book (DBOOK). Please contact him via theGitHub issue tracker oremail regarding any issues with the site itself, search, or rendering of documentation.
The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via thePerl issue tracker, themailing list, orIRC to report any issues with the contents or format of the documentation.