Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# perlcheat

Perl 5 version 26.0 documentation
Go to top
Show page index • Show recent pages
Recently read

# perlcheat

- NAME
- DESCRIPTION
  - The sheet
- 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 Perl 6 version to show that Perl will stay Perl.

# AUTHOR

Juerd Waalboer <#####@juerd.nl>, with the help of many Perl Monks.

# SEE ALSO

- http://perlmonks.org/?node_id=216602 - the original PM post

- http://perlmonks.org/?node_id=238031 - Damian Conway's Perl 6 version

- http://juerd.nl/site.plp/perlcheat - home of the Perl Cheat Sheet

Page index

- NAME
- DESCRIPTION
  - The sheet
- ACKNOWLEDGEMENTS
- AUTHOR
- SEE ALSO