Section 1 · User commands

perlcheat.1

Package: perl-doc

PERLCHEAT

NAME
DESCRIPTION
ACKNOWLEDGEMENTS
AUTHOR
SEE ALSO


NAME

perlcheat − Perl 5 Cheat Sheet

DESCRIPTION

This ’cheat sheet’ is a handy reference, meant for beginning Perl programmers. Not everything is mentioned, but 195 features may already be overwhelming.

The sheet

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 () 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

ACKNOWLEDGEMENTS

The 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 Raku version to show that Perl will stay Perl.

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