PERLCHEAT(1)
π PERLCHEAT(1) β the Perl 5 Cheat Sheet π
okay so this page lives in the Perl Programmers Reference Guide and its manual name is PERLCHEAT(1), and bestie, it is literally a cheat sheet. group-chat energy: engaged. let's go π¦
β¨ NAME β¨
perlcheat β Perl 5 Cheat Sheet. that's the name. short, sweet, slays.
π DESCRIPTION π
so this "cheat sheet" is a handy lil reference, and it's made for beginning Perl programmers β like, if you're just starting out, this is your girl. is everything in here? no. not everything is mentioned. but the 195 features that are here may already be overwhelming ngl π one hundred and ninety-five. that's a lot of features. hydrate.
π The sheet π
here it is, the whole entire thing, no edits, no notes, just vibes:
CONTEXTS SIGILS ref ARRAYS HASHES
void $scalar SCALAR @array %hash
scalar @array ARRAY @array[0, 2] @hash{'a', 'b'}
list %hash HASH $array[0] $hash{'a'}
&sub CODE
*glob GLOB SCALAR VALUES
FORMAT number, string, ref, glob, undef
REFERENCES
\ reference $$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
SYNTAX
OPERATOR PRECEDENCE foreach (LIST) { } for (a;b;c) { }
-> while (e) { } until (e) { }
++ -- if (e) { } elsif (e) { } else { }
** unless (e) { } elsif (e) { } else { }
! ~ \ u+ u- given (e) { when (e) {} default {} }
=~ !~
* / % x NUMBERS vs STRINGS FALSE vs TRUE
+ - . = = undef, "", 0, "0"
<< >> + . anything else
named uops == != eq ne
< > <= >= lt gt le ge < > <= >= lt gt le ge
== != <=> eq ne cmp ~~ <=> cmp
&
| ^ REGEX MODIFIERS REGEX METACHARS
&& /i case insensitive ^ string begin
|| // /m line based ^$ $ str end (bfr \n)
.. ... /s . includes \n + one or more
?: /x /xx ign. wh.space * zero or more
= += last goto /p preserve ? zero or one
, => /a ASCII /aa safe {3,7} repeat in range
list ops /l locale /d dual | alternation
not /u Unicode [] character class
and /e evaluate /ee rpts \b boundary
or xor /g global \z string end
/o compile pat once (p) capture
DEBUG (?:p) no capture
-MO=Deparse REGEX CHARCLASSES (?#t) comment
-MO=Terse . [^\n] (?=p) ZW pos ahead
-D## \s whitespace (?!p) ZW neg ahead
-d:Trace \w word chars (?<=p) ZW pos behind \K
\d digits (?<!p) ZW neg behind
CONFIGURATION \pP named property (?>p) no backtrack
perl -V:ivsize \h horiz.wh.space (?|p|p)branch reset
\R linebreak (?<n>p)named capture
\S \W \D \H negate \g{n} ref to named cap
\K keep left part
FUNCTION RETURN LISTS
stat 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 args
10 ctime 10 hinthash @INC include paths
11 blksz 3..10 only @_ subroutine args
12 blcks with EXPR %ENV environment
so when you're staring at that and your eyes go π« , here's the map of what's in there: CONTEXTS, SIGILS, ref, ARRAYS, HASHES, REFERENCES, OPERATOR PRECEDENCE, SYNTAX, NUMBERS vs STRINGS, FALSE vs TRUE, REGEX MODIFIERS, REGEX METACHARS, REGEX CHARCLASSES, DEBUG, CONFIGURATION, FUNCTION RETURN LISTS, and SPECIAL VARIABLES. seventeen little neighborhoods of Perl knowledge, all in one screen. obsessed. π
πΈ ACKNOWLEDGEMENTS πΈ
the very first version of this document showed up on Perl Monks, where a bunch of people had useful suggestions. thank you, Perl Monks π«Ά you ate.
and a special thanks to Damian Conway, who didn't only suggest important changes β he also took the time to count the number of listed features (the 195!! the legend did the math π) and to make a Raku version, just to show that Perl will stay Perl. king behavior fr fr π
π AUTHOR π
Juerd Waalboer <#####@juerd.nl>, with the help of many Perl Monks.
π₯ SEE ALSO π₯
- <https://perlmonks.org/?node_id=216602> β the original PM post
- <https://perlmonks.org/?node_id=238031> β Damian Conway's Raku version
- <https://juerd.nl/site.plp/perlcheat> β home of the Perl Cheat Sheet
and that's the whole page bestie. go forth and cheat (on your memory, not on your tests). no cap. β¨
this one's from perl v5.42.3, dated 2026-08-03 β that's the version, that's the date, and honestly? the sheet still goes hard. mwah πππ¦πΈ
π¦ where this page comes from
- fedora 43: perl-doc 5.42.3-524.fc43 Β· (GPL-1.0-or-later OR Artistic-1.0-Perl) AND Unicode-3.0 AND LicenseRef-Fedora-UltraPermissive
- fedora 44: perl-doc 5.42.3-525.fc44 Β· (GPL-1.0-or-later OR Artistic-1.0-Perl) AND Unicode-3.0 AND LicenseRef-Fedora-UltraPermissive
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms