perlcheat

Langue: en

Version: 2010-04-26 (MeeGo - 06/11/10)

Section: 1 (Commandes utilisateur)

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