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

News / Blogs

- Perl Buzz
- Perl Iron Man
- Perlsphere
- Planet Perl
- TPF news
- Use Perl

See also

- CPAN
- Perl.org
- Perl.com
- Perl 5 Wiki
- Perl Jobs
- Perl Mongers
- Perl Monks

Contact

- Site designed and maintained by Jon Allen (JJ)
- http://perl.jonallen.info

- View the project page and FAQs

# perlcheat

Perl 5 version 10.1 documentation
Go to top • Show page index • Download PDF

# 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             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      /o cmpl pat. once  list ops         ()    capture  not              (?:)  no capture       REGEX CHARCLASSES  and              []    character class  .  == [^\n]  or xor           |     alternation      \s == whitespace                   \b    word boundary    \w == word characters                   \z    string end       \d == digits  DO                                      \S, \W and \D negate  use strict;        DON'T  use warnings;      "$foo"           LINKS  my $var;           $$variable_name  perl.com  open() or die $!;  `$userinput`     use.perl.org  use Modules;       /$userinput/     perl.apache.org  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  just use                    @INC  include paths  11 blksz  POSIX::      3..9 only      @_    subroutine args  12 blcks  strftime!    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

Recently read

Tools

- Preferences