In Perl 6 any variable and value is an object. Here's a list of all different types of values, represented my different classes or roles. The "routine types"{link: routine_types} are in a different section.

> . _______ any character
> ^_______ begin of the sring
> ^^ _____ begin of a line
> $ _______ end of the string
> $$ ______ end of a line
> (...)_____ Group patterns and capture the result
> {{[...]}} _____ Group patterns without capturing
> {...} ____ Execute a closure (Perl 6 code) within a rule
> <...> ____ Match an assertion
> | _______ Match alternate patterns (OR)
> **______ muliply this (meta)char/subrule times the following digit
> &_______ Match multiple patterns (AND)
> \ _______ Escape a metacharacter to get a literal character, or escape a literal character to get a metacharacter
> #_______ Mark a comment (to the end of the line)
> := ______ Bind the result of a match to a hypothetical variable

^^^ Control Chars

These Escape Sequences will be evalueated to invisible control chars, if the ":b" aka ":backslash" quoting Adverbs are set (included in "", qq and <<>>). They are also usable in regexes and thatswhy also included in the next list.

aka phasers. Every block can contain special named blocks (some are only for loops) that are started at certain times. They are traits (compile time property) of a block object. Those marked with a * can also be used within an expression as in "BEGIN my $x = 3 * 3;".

> if . . . . . . when following expression evals in boolean context to "Bool::True", the block that following after that will be executed
> elsif . . . . works like if, but only recognized if no preceding "if" or "elsif" clause was executed
> else . . . . following block will be executed, when no preceding "if" or "elsif" clause was executed
> unless. . . opposite of if, no "elsif" or "else" is allowed to follow
> given . . . evals an expression into scalar context assignes it to $_ for the following block
> when . . . smartmatches an expression against $_; if the result is "Bool::True", the following block will be executed
> default . . following block will be executed, when no "when" clause was executed

^^^ Loops

> loop . . . . general (endless) loop, unless used as an C-style-loop, evals following expression into void context
> repeat. . . initial command for while or until loops that have their condtion at the end
> while. . . . loop with negative exit condition (exit when false), condition, evals expression into boolean context
> until . . . . loop with positive exit condition(exit when true), evals expression into boolean context
> for . . . . . evals expression into lazy list context and iterates over that list from first to last value, sets each time $_ (can be combined with when as well),

> multi. . . . . marks routines, witch can have siblings with same name but different signature; when called, the one with matching sig is executed
> only . . . . . routines which dont' allow to have an multi sibling (is default, you may leave it out)
> proto . . . . fallback for multi, if no multi signature matches the caller, a proto with same name is executed

^^^^ Routine Traits

"phasers"{link: Closure Traits} (closure traits) can also be seen as routine traits