<?php include 'HEADER.php'; ?>

<h1>Perl 6 Cheatsheet</h1>

<p>Taken from the Perl 6 master docs on github (<a href="https://raw.github.com/perl6/mu/master/docs/Perl6/Cheatsheet/cheatsheet.txt">here</a>).</p>

<pre>
Perl 6 cheat sheet v2

SIGILS    MAJOR/MINOR CONTEXTS         ACCESS ARRAYS      HASHES
$scalar   item   list       sink       whole: @array[]    %hash{}
@array     Str    flat/lol           element: @array[0]   %hash{'a'}
%hash      Num    lazy/eager/hyper       (or)             %hash&lt;a&gt;
&amp;code      Bool                        slice: @array[0,2] %hash{'a','b'}
                       COMPOSERS         (or)             %hash&lt;a b&gt;
TWIGILS                [ ] array
$normal-lexical        { } block/hash     AUTOMATIC DEREFERENCE
$?compiler-constant    &lt; &gt; quotewords     &amp;($foo)(1,2)     == $foo(1,2)
$*dynamic-or-global    (,) parcel         @($foo)[1]       == $foo[1]
$.public-accessor      :() signature      %($foo){'bar'}   == $foo&lt;bar&gt;
$!private-attribute    \() capture        @(@($foo)[1])[2] == $foo[1][2]
$^positional-param
$:named-parameter         CONTROL SYNTAX
$=pod-info                for LIST { }                # implicit $_ arg
$&lt;named-match-capture&gt;    for LIST -&gt; $a, $b { }      # explicit args
$~slang-variable          while/until EXPR { }
                          repeat while/until EXPR { } # do at least once
OPERATOR PRECEDENCE       loop { }   loop (a;b;c) { } # parens required!
.method .[] i             if EXPR { } elsif EXPR { } else { }
++ --                     unless EXPR { }             # no else allowed!
**                        given EXPR { when EXPR { } default { } }
unary + - ~ ! ? ^         EXPR if EXPR for LIST;    # list comprehension
* / % %% div              next, last, redo            # loop controls
+ -                       proceed, succeed            # switch controls
x xx       TYPES
~          Bool Bit Int Rat FatRat UInt Num Complex int32 complex64 etc.
&amp;          Str Cat Blob Char Byte Codepoint Grapheme Buf buf8 buf32 utf8
| ^                               IO Mu Any Cool Junction Whatever Match
sleep abs sin temp                              Parcel Capture Signature
&lt;=&gt; leg cmp .. but          SCOPE DECLARATORS         Pair Range Set Bag
~~ &gt; == gt eq === eqv !op   my  lexical scope      KeyHash KeySet KeyBag
&amp;&amp;                         our  package scope     Scalar Array Hash Code
|| ^^ // min max           has  instance scope       Enum Order TrigBase
??!! ff                   anon  no scope at all        Block Routine Sub
= := op= =&gt;              state  persistent lexical          Method Regex
so not                 augment  benign parasitic       Failure Exception
, :                  supersede  deadly parasitic        Instant Duration
X Xop Z Zop ...                                            Date DateTime
say die map etc.  OPERATOR DOMAINS
and               Numeric: ==  !==(!=) + &lt;      &gt;     &lt;=&gt; &lt;=     &gt;=
or xor            Stringy: eq  !eq(ne) ~ lt     gt    leg le     ge
&lt;== ==&gt;             Value: eqv  !eqv     before after cmp !after !before
                 ObjectID: ===  !===
METAOPERATORS                         LINKS      IRC
[op] reduce listop to A op B op C...  perl6.org  #perl6 irc.freenode.net
op=  A = A op B                       rakudo.org #parrot irc.perl.org
!op  !(A op B)
»op« hyper/vectorize    REGEX  METACHARS          REGEX MODIFIERS
Zop  zip with op        ^ $    string begin/end   :i   ignore case
Xop  cross with op      ^^ $$  line begin/end     :m   ignore marks
Rop  reverse args       +      one or more        :g   global
Sop  sequentialize      *      zero or more       :r   ratchet
                        ?      zero or one        :s   sigspace
SPECIAL VARIABLES       **1..3 repeat in range    :4th nth occurrence
$_     current topic    ()     capture to $0,$1   :4x  n times
$/     regex result     []     no capture
$!     error object     &lt;foo&gt;  subrule          REGEX CHARCLASSES
@*ARGS command line     &lt;[]&gt;   character class  .  == anychar, \N non \n
@*INC  include path     |      parallel or      \s == &lt;space&gt;, \S non
%*ENV  environment      ||     serial or        \d == &lt;digit&gt;, \D non
$*PID  process id       « »    word boundary    \w == &lt;+alpha+digit+[_]&gt;

</pre>

<?php include '../FOOTER.php'; ?>
