<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule">

<channel>
<title><![CDATA[Perl 6: Perl 6 Lookup Tablet]]></title>
<link>http://www.perlfoundation.org/perl6/index.cgi?perl_6_lookup_tablet</link>
<description></description>
<pubDate>Tue, 17 Apr 2012 00:57:13 -0000</pubDate>
<webMaster>synedra@gmail.com</webMaster>
<generator>Socialtext Workspace v2.14.7.2</generator>

<item>
<title><![CDATA[Perl 6 Lookup Tablet]]></title>
<link>http://www.perlfoundation.org/perl6/index.cgi?perl_6_lookup_tablet</link>
<description><![CDATA[<div class="wiki">
<p>
<a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_intro_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">Intro<!-- wiki-renamed-link Perl 6 Intro Tablet --></a> - <em>Chapter:</em> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_history_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">0:History<!-- wiki-renamed-link Perl 6 History Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_language_design_tablet" title="(7 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">1:Design<!-- wiki-renamed-link Perl 6 Language Design Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_basics_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">2:Basics<!-- wiki-renamed-link Perl 6 Basics Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">3:Var<!-- wiki-renamed-link Perl 6 Variable Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_operator_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">4:Op<!-- wiki-renamed-link Perl 6 Operator Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_io_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">5:IO<!-- wiki-renamed-link Perl 6 IO Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_block_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">6:Block<!-- wiki-renamed-link Perl 6 Block Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_subroutine_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">7:Sub<!-- wiki-renamed-link Perl 6 Subroutine Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_oop_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">8:OOP<!-- wiki-renamed-link Perl 6 OOP Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_regex_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">9:Rx<!-- wiki-renamed-link Perl 6 Regex Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_meta_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">10:Meta<!-- wiki-renamed-link Perl 6 Meta Tablet --></a><br />
<a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_tablets" title="(13 months) These are the Perl 6 Tablets, a comprehensive manual, aimed to support many different ways of learni...">Overview<!-- wiki-renamed-link Perl 6 Tablets --></a> - <em>Appendix:</em> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet" title="(13 months)  section Index Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [...">A:Index<!-- wiki-renamed-link Perl 6 Index Tablet --></a> <strong><a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_lookup_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">B:Tables<!-- wiki-renamed-link Perl 6 Lookup Tablet --></a></strong> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_cookbook_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">C:Cook<!-- wiki-renamed-link Perl 6 Cookbook Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_delta_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">D:Delta<!-- wiki-renamed-link Perl 6 Delta Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?best_of_perl_6_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">E:Best of<!-- wiki-renamed-link Best Of Perl 6 Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_links_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">F:Links<!-- wiki-renamed-link Perl 6 Links Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_glossary_tablet" title="(13 months)  section Index Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [...">G:Glossary<!-- wiki-renamed-link Perl 6 Glossary Tablet --></a></p>
<hr />
<div class="nlw_phrase"><table class='toc'><tr><td><div class="wiki">
<h3 id="contents">Contents: []</h3>
<ul>
<li><span class="nlw_phrase"><a title="section link" href="#variables">Variables</a><!-- wiki: {link: [] Variables} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="#sigils">Sigils</a><!-- wiki: {link: [] Sigils} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#twigils">Twigils</a><!-- wiki: {link: [] Twigils} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#special_variables">Special Variables</a><!-- wiki: {link: [] Special Variables} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="#match_variables">Match Variables</a><!-- wiki: {link: [] Match Variables} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#global_variables">Global Variables</a><!-- wiki: {link: [] Global Variables} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#compiler_hint_variables">Compiler Hint Variables</a><!-- wiki: {link: [] Compiler Hint Variables} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#pod_variables">POD Variables</a><!-- wiki: {link: [] POD Variables} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#slang_variables">Slang Variables</a><!-- wiki: {link: [] Slang Variables} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="#scope_declarator">Scope Declarator</a><!-- wiki: {link: [] Scope Declarator} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#scopes">Scopes</a><!-- wiki: {link: [] Scopes} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#value_types">Value Types</a><!-- wiki: {link: [] Value Types} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="#undefined_types">Undefined types</a><!-- wiki: {link: [] Undefined types} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#immutable_types">Immutable types</a><!-- wiki: {link: [] Immutable types} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#mutable_types">Mutable types</a><!-- wiki: {link: [] Mutable types} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="#low_level_data_types">Low level data types</a><!-- wiki: {link: [] Low level data types} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#object_introspection">Object Introspection</a><!-- wiki: {link: [] Object Introspection} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="#operators">Operators</a><!-- wiki: {link: [] Operators} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="#table_of_precedence">Table of precedence</a><!-- wiki: {link: [] Table of precedence} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#operator_associativity">Operator Associativity</a><!-- wiki: {link: [] Operator Associativity} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#categories">Categories</a><!-- wiki: {link: [] Categories} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="#main">Main</a><!-- wiki: {link: [] Main} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#regex">Regex</a><!-- wiki: {link: [] Regex} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="#metaoperators">Metaoperators</a><!-- wiki: {link: [] Metaoperators} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#unicode_operators">Unicode operators</a><!-- wiki: {link: [] Unicode operators} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#contextualizers">Contextualizers</a><!-- wiki: {link: [] Contextualizers} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#smartmatch">Smartmatch</a><!-- wiki: {link: [] Smartmatch} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#filetest_ops">Filetest Ops</a><!-- wiki: {link: [] Filetest Ops} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#quoting_ops">Quoting Ops</a><!-- wiki: {link: [] Quoting Ops} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="#text_processing">Text Processing</a><!-- wiki: {link: [] Text Processing} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="#quoting_adverbs">Quoting Adverbs</a><!-- wiki: {link: [] Quoting Adverbs} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#regex_modifier">Regex Modifier</a><!-- wiki: {link: [] Regex Modifier} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#regex_metacharacter">Regex Metacharacter</a><!-- wiki: {link: [] Regex Metacharacter} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#quantifier">Quantifier</a><!-- wiki: {link: [] Quantifier} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#control_chars">Control Chars</a><!-- wiki: {link: [] Control Chars} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#escape_sequences">Escape Sequences</a><!-- wiki: {link: [] Escape Sequences} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#subrules">Subrules</a><!-- wiki: {link: [] Subrules} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="#flow_control">Flow Control</a><!-- wiki: {link: [] Flow Control} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="#closure_traits">Closure Traits</a><!-- wiki: {link: [] Closure Traits} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#jump_commands">Jump Commands</a><!-- wiki: {link: [] Jump Commands} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#conditionals">Conditionals</a><!-- wiki: {link: [] Conditionals} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#loops">Loops</a><!-- wiki: {link: [] Loops} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#routines">Routines</a><!-- wiki: {link: [] Routines} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="#routine_types">Routine Types</a><!-- wiki: {link: [] Routine Types} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#routine_modifier">Routine Modifier</a><!-- wiki: {link: [] Routine Modifier} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#routine_traits">Routine Traits</a><!-- wiki: {link: [] Routine Traits} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#parameter_traits">Parameter Traits</a><!-- wiki: {link: [] Parameter Traits} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#signature_symbols">Signature Symbols</a><!-- wiki: {link: [] Signature Symbols} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="#callframe_methods">Callframe Methods</a><!-- wiki: {link: [] Callframe Methods} --></span></li>
</ul></ul></ul>
</div>
</td></tr></table><!-- wiki: {toc: } --></div><br /><br /><h2 id="variables">Variables</h2>
<h3 id="sigils">Sigils</h3>
<p>
All variables in Perl begin with a sigil. They mark the 3 primary var types. The 4th sigil is for callables (routines) and the 5th is for layers (namespaces) that organize the previous 4.</p>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#dollar_sigil">$</a><!-- wiki: "$"{link: [Perl 6 Index Tablet]dollar sigil} --></span>. . . . <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet#scalar">scalar</a><!-- wiki: "scalar"{link: [Perl 6 Variable Tablet]scalar} --></span>, single value, can be of any data type<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#at_sigil">@</a><!-- wiki: "@"{link: [Perl 6 Index Tablet]at sigil} --></span> . . . ordered <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet#array">array</a><!-- wiki: "array"{link: [Perl 6 Variable Tablet]array} --></span>, indexed list of scalar<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#percent_sigil">%</a><!-- wiki: "%"{link: [Perl 6 Index Tablet]percent sigil} --></span> . . . unordered <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet#hash">hash</a><!-- wiki: "hash"{link: [Perl 6 Variable Tablet]hash} --></span> (associative array), 2 column table with unique IDs (keys) and associated values (value)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#ampersand_sigil">&amp;</a><!-- wiki: "&"{link: [Perl 6 Index Tablet]ampersand sigil} --></span>. . . . code/rule/token/regex<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#colon_colon_sigil">::</a><!-- wiki: "::"{link: [Perl 6 Index Tablet]colon colon sigil} --></span> . . . abstraction: package/module/class/role/subset/enum/type/grammar</blockquote>
<br /><p>
The first 4 can also be used as prefix operators, called <span class="nlw_phrase"><a title="section link" href="#contextualizers">contextualizers</a><!-- wiki: {link: contextualizers} --></span>, that force different contexts, but there are much more different contexts then 4.</p>
<h3 id="twigils">Twigils</h3>
<p>
Twigil is short for secondary sigil. They follow after a primary sigil and mark special namespaces or variables with special meanings and properties.</p>
<blockquote>
$foo . . . ordinary scoping (no twigil)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#dot_twigil">$.foo</a><!-- wiki: "$.foo"{link: [Perl 6 Index Tablet]dot twigil} --></span>. . . object attribute public accessor<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#exclamation_mark_twigil">$!foo</a><!-- wiki: "$!foo"{link: [Perl 6 Index Tablet]exclamation mark twigil} --></span>. . . object attribute private storage<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#caret_twigil">$^foo</a><!-- wiki: "$^foo"{link: [Perl 6 Index Tablet]caret twigil} --></span> . . self-declared formal positional parameter<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#colon_twigil">$:foo</a><!-- wiki: "$:foo"{link: [Perl 6 Index Tablet]colon twigil} --></span> . . .self-declared formal named parameter<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#asterisk_twigil">$*foo</a><!-- wiki: "$*foo"{link: [Perl 6 Index Tablet]asterisk twigil} --></span> . . .contextualizable global variable<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#question_mark_twigil">$?foo</a><!-- wiki: "$?foo"{link: [Perl 6 Index Tablet]question mark twigil} --></span> . . .compiler hint variable<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#equal_sign_twigil">$=foo</a><!-- wiki: "$=foo"{link: [Perl 6 Index Tablet]equal sign twigil} --></span> . . .pod variable<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#angle_brackets_twigil">$&lt;foo&gt;</a><!-- wiki: "$<foo>"{link: [Perl 6 Index Tablet]angle brackets twigil} --></span> . .match variable, short for $/&lt;foo&gt; or even $/{'foo'}<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#tilde_twigil">$~foo</a><!-- wiki: "$~foo"{link: [Perl 6 Index Tablet]tilde twigil} --></span> . . .the foo sublanguage seen by the parser at this lexical spot</blockquote>
<br /><h3 id="special_variables">Special Variables</h3>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#context_var">$_</a><!-- wiki: "$_"{link: [Perl 6 Index Tablet] context var} --></span>. . . . . . . . . context variable<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#exclamation_mark_var">$!</a><!-- wiki: "$!"{link: [Perl 6 Index Tablet] exclamation mark var} --></span> . . . . . . . . . error msg</blockquote>
<br /><h4 id="match_variables">Match Variables</h4>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#slash_var">$/</a><!-- wiki: "$/"{link: [Perl 6 Index Tablet] slash var} --></span> . . . . . . . . . last created match object of this block<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#angle_brackets_var">$&lt;...&gt;</a><!-- wiki: "$<...>"{link: [Perl 6 Index Tablet] angle brackets var} --></span> . . . . . . alias to named capture, see Twigils above<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#0_var">$0 .. $9</a><!-- wiki: "$0 .. $9"{link: [Perl 6 Index Tablet] 0 var} --></span> . . . . . alias to positional capture (most like in P5 - $1 .. $9)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#round_brackets_var">@()</a><!-- wiki: "@()"{link: [Perl 6 Index Tablet] round brackets var} --></span> . . . . . . . . array that holds $0 .. $9 and rest and positional submatches</blockquote>
<br /><h4 id="global_variables">Global Variables</h4>
<p>
context variable, default global (run time), any of them are now objects with several methods</p>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#args_global_var">@*ARGS</a><!-- wiki: "@*ARGS"{link: [Perl 6 Index Tablet] args global var} --></span> . . . . . Arguments (Parameter) to a program (script), formerly @ARGV<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#argfiles_global_var">$*ARGFILES</a><!-- wiki: "$*ARGFILES"{link: [Perl 6 Index Tablet] argfiles global var} --></span>. . . magic command-line input handle <br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#in_global_var">$*IN</a><!-- wiki: "$*IN"{link: [Perl 6 Index Tablet] in global var} --></span>. . . . . . . . standard input handle (command line mostly)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#out_global_var">$*OUT</a><!-- wiki: "$*OUT"{link: [Perl 6 Index Tablet] out global var} --></span>. . . . . . . standard output (command line mostly)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#err_global_var">$*ERR</a><!-- wiki: "$*ERR"{link: [Perl 6 Index Tablet] err global var} --></span>. . . . . . . standard error output (command line mostly)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#cwd_global_var">$*CWD</a><!-- wiki: "$*CWD"{link: [Perl 6 Index Tablet] cwd global var} --></span> . . . . . . current working directory (Str)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#inc_global_var">@*INC</a><!-- wiki: "@*INC"{link: [Perl 6 Index Tablet] inc global var} --></span>. . . . . . . include pathes (but not for std library modules), formerly @INC<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#lang_global_var">$*LANG</a><!-- wiki: "$*LANG"{link: [Perl 6 Index Tablet] lang global var} --></span> . . . . . . LANG variable from %*ENV that defines what human language is used<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#env_global_var">%*ENV</a><!-- wiki: "%*ENV"{link: [Perl 6 Index Tablet] env global var} --></span> . . . . . . system environment variables, formerly %ENV<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#opts_global_var">%*OPTS</a><!-- wiki: "%*OPTS"{link: [Perl 6 Index Tablet] opts global var} --></span> . . . . . options from command line<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#tz_global_var">$*TZ</a><!-- wiki: "$*TZ"{link: [Perl 6 Index Tablet] tz global var} --></span>. . . . . . . . local time zone<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#executable_name_global_var">$*EXECUTABLE_NAME</a><!-- wiki: "$*EXECUTABLE_NAME"{link: [Perl 6 Index Tablet] executable name global var} --></span> . former $0<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#perl_global_var">$*PERL</a><!-- wiki: "$*PERL"{link: [Perl 6 Index Tablet] perl global var} --></span> . . . . . . perl version running under, was formerly $^V or $]<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#kernel_global_var">$*KERNEL</a><!-- wiki: "$*KERNEL"{link: [Perl 6 Index Tablet] kernel global var} --></span> . . . . operating system running under<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#distro_global_var">$*DISTRO</a><!-- wiki: "$*DISTRO"{link: [Perl 6 Index Tablet] distro global var} --></span> . . . . OS distribution am I running under<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#pid_global_var">$*PID</a><!-- wiki: "$*PID"{link: [Perl 6 Index Tablet] pid global var} --></span> . . . . . . . ID of the running process,<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#gid_global_var">$*GID</a><!-- wiki: "$*GID"{link: [Perl 6 Index Tablet] gid global var} --></span> . . . . . . . real global ID of the running process owner, formerly @(<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#uid_global_var">$*UID</a><!-- wiki: "$*UID"{link: [Perl 6 Index Tablet] uid global var} --></span> . . . . . . . real user ID of the running process owner (user), formerly @&lt;<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#egid_global_var">$*EGID</a><!-- wiki: "$*EGID"{link: [Perl 6 Index Tablet] egid global var} --></span> . . . . . . effective global ID, formerly @)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#euid_global_var">$*EUID</a><!-- wiki: "$*EUID"{link: [Perl 6 Index Tablet] euid global var} --></span> . . . . . . effective user ID, formerly @&gt;<br />
$*ON_DIE . . . . exception handler, run befor die, formerly $SIG{__DIE__}<br />
$*ON_WARN. . . exception handler, run befor warn, formerly $SIG{__WARN__}<br />
$*COMPILING. . . <br />
$*EMERGENCY_MEMORY. . . formerly $^M<br />
$*DEBUGGING . .</blockquote>
<br /><h4 id="compiler_hint_variables">Compiler Hint Variables</h4>
<p>
compiler constants (fixed at compile time)</p>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#kernel_compiler_var">$?KERNEL</a><!-- wiki: "$?KERNEL"{link: [Perl 6 Index Tablet] kernel compiler var} --></span> . . . . . for which operating System was this program compiled?<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#distro_compiler_var">$?DISTRO</a><!-- wiki: "$?DISTRO"{link: [Perl 6 Index Tablet] distro compiler var} --></span> . . . . . Which OS distribution am I compiling under?<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#vm_compiler_var">$?VM</a><!-- wiki: "$?VM"{link: [Perl 6 Index Tablet] vm compiler var} --></span> . . . . . . . . Which virtual machine am I compiling under<br />
$?XVM . . . . . . . Which virtual machine am I cross-compiling for<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#perl_compiler_var">$?PERL</a><!-- wiki: "$?PERL"{link: [Perl 6 Index Tablet] perl compiler var} --></span> . . . . . . . Which Perl am I compiled for?<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#lang_compiler_var">%?LANG</a><!-- wiki: "%?LANG"{link: [Perl 6 Index Tablet] lang compiler var} --></span> . . . . . . Hash of Grammar # What is the current set of interwoven languages?<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#grammar_compiler_var">$?GRAMMAR</a><!-- wiki: "$?GRAMMAR"{link: [Perl 6 Index Tablet] grammar compiler var} --></span>. . . . current grammar<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#file_compiler_var">$?FILE</a><!-- wiki: "$?FILE"{link: [Perl 6 Index Tablet] file compiler var} --></span>. . . . . . . . current filename of source file<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#module_compiler_var">$?MODULE</a><!-- wiki: "$?MODULE"{link: [Perl 6 Index Tablet] module compiler var} --></span>. . . . . current module<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#package_compiler_var">$?PACKAGE</a><!-- wiki: "$?PACKAGE"{link: [Perl 6 Index Tablet] package compiler var} --></span> . . . . current package<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#class_compiler_var">$?CLASS</a><!-- wiki: "$?CLASS"{link: [Perl 6 Index Tablet] class compiler var} --></span> . . . . . . current class<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#class_package_compiler_var">::?CLASS</a><!-- wiki: "::?CLASS"{link: [Perl 6 Index Tablet] class package compiler var} --></span>. . . . . . current class (as package name)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#role_compiler_var">$?ROLE</a><!-- wiki: "$?ROLE"{link: [Perl 6 Index Tablet] role compiler var} --></span> . . . . . . . current role (as variable)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#role_package_compiler_var">::?ROLE</a><!-- wiki: "::?ROLE"{link: [Perl 6 Index Tablet] role package compiler var} --></span>. . . . . . . current role (as package or type name)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#routine_compiler_var">&amp;?ROUTINE</a><!-- wiki: "&?ROUTINE"{link: [Perl 6 Index Tablet] routine compiler var} --></span>. . . . . current sub or method<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#block_compiler_var">&amp;?BLOCK</a><!-- wiki: "&?BLOCK"{link: [Perl 6 Index Tablet] block compiler var} --></span> . . . . . . reference to current block<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#line_compiler_var">$?LINE</a><!-- wiki: "$?LINE"{link: [Perl 6 Index Tablet] line compiler var} --></span>. . . . . . . . current line number</blockquote>
<br /><h4 id="pod_variables">POD Variables</h4>
<p>
File-scoped <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_basics_tablet#pod">POD</a><!-- wiki: "POD"{link: [perl_6_basics_tablet] pod} --></span> data</p>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#pod_pod_var">$=pod</a><!-- wiki: "$=pod"{link: [Perl 6 Index Tablet] pod pod var} --></span> . . . . . . . surrounding POD object<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#data_pod_var">$=data</a><!-- wiki: "$=data"{link: [Perl 6 Index Tablet] data pod var} --></span>. . . . . . . data block handle (=begin DATA ... =end)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#comment_pod_var">@=COMMENT</a><!-- wiki: "@=COMMENT"{link: [Perl 6 Index Tablet] comment pod var} --></span>. . . All the comment blocks in the file</blockquote>
<br /><h4 id="slang_variables">Slang Variables</h4>
<p>
sublanguage seen by the parser at this lexical spot</p>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#main_lang_var">$~MAIN</a><!-- wiki: "$~MAIN"{link: [Perl 6 Index Tablet] main lang var} --></span> . . . . . . the current main language (e.g. Perl statements)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#q_lang_var">$~Quote</a><!-- wiki: "$~Quote"{link: [Perl 6 Index Tablet] q lang var} --></span>. . . . . . the current root of quoting language<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#quasi_lang_var">$~Quasi</a><!-- wiki: "$~Quasi"{link: [Perl 6 Index Tablet] quasi lang var} --></span> . . . . . . the current root of quasiquoting language<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#regex_lang_var">$~Regex</a><!-- wiki: "$~Regex"{link: [Perl 6 Index Tablet] regex lang var} --></span>. . . . . . the current root of regex language<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#trans_lang_var">$~Trans</a><!-- wiki: "$~Trans"{link: [Perl 6 Index Tablet] trans lang var} --></span> . . . . . . the current root of transliteration language<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#p5regex_lang_var">$~P5Regex</a><!-- wiki: "$~P5Regex"{link: [Perl 6 Index Tablet] p5regex lang var} --></span> . . . . the current root of the Perl regex language</blockquote>
<br /><h3 id="scope_declarator">Scope Declarator</h3>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#my">my</a><!-- wiki: "my"{link: [Perl 6 Index Tablet] my} --></span> . . . . . . . introduces lexically scoped names<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#state">state</a><!-- wiki: "state"{link: [Perl 6 Index Tablet] state} --></span> . . . . . . introduces lexically scoped but persistent names<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#our">our</a><!-- wiki: "our"{link: [Perl 6 Index Tablet] our} --></span> . . . . . . . introduces package-scoped names<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#anon">anon</a><!-- wiki: "anon"{link: [Perl 6 Index Tablet] anon} --></span> . . . . . . introduces names that aren't to be stored anywhere<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#has">has</a><!-- wiki: "has"{link: [Perl 6 Index Tablet] has} --></span> . . . . . . . introduces object attribute names<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#augment">augment</a><!-- wiki: "augment"{link: [Perl 6 Index Tablet] augment} --></span>. . . . adds definitions to an existing name<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#supersede">supersede</a><!-- wiki: "supersede"{link: [Perl 6 Index Tablet] supersede} --></span>. . . replaces definitions of an existing name</blockquote>
<br /><h3 id="scopes">Scopes</h3>
<blockquote>
The following pseudo-package names are reserved at the front of a name:<br />
.<br />
MY. . . . . . . Symbols in the current lexical scope (aka $?SCOPE)<br />
OUR. . . . . . Symbols in the current package (aka $?PACKAGE)<br />
.<br />
CORE. . . . . Outermost lexical scope, definition of standard Perl<br />
GLOBAL . . . Interpreter-wide package symbols, really CORE::GLOBAL<br />
PROCESS . . Process-related globals (superglobals), CORE::PROCESS<br />
COMPILING . Lexical symbols in the scope being compiled<br />
DYNAMIC . . Contextual symbols in my or any caller's lexical scope<br />
.<br />
The following relative names are also reserved but may be used anywhere in a name:<br />
.<br />
CALLER. . . . Contextual symbols in the immediate caller's lexical scope<br />
OUTER . . . . Symbols in the next outer lexical scope<br />
UNIT . . . . . Symbols in the outermost lexical scope of compilation unit<br />
SETTING. . . Lexical symbols in the unit's DSL (usually CORE)<br />
PARENT . . . Symbols in this package's parent package (or lexical scope)<br />
.<br />
The following is reserved at the beginning of method names in method calls:<br />
.<br />
SUPER . . . . Package symbols declared in inherited classes</blockquote>
<br /><h3 id="value_types">Value Types</h3>
<p>
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 <span class="nlw_phrase"><a title="section link" href="#routine_types">routine types</a><!-- wiki: "routine types"{link: routine_types} --></span> are in a different section.</p>
<h4 id="undefined_types">Undefined types</h4>
<blockquote>
Mu. . . . . . . . Most Undefined<br />
Failure . . . . . Failure (lazy exceptions, thrown if not handled properly)<br />
Any . . . . . . . Perl 6 object (default routine parameter type, excludes junction)<br />
Cool. . . . . . . Perl 6 Convenient OO Loopbacks<br />
Whatever . . . Wildcard (like Any, but subject to do-what-I-mean via MMD)<br />
Int. . . . . . . . Any Int object<br />
Widget . . . . . Any Widget object</blockquote>
<br /><h4 id="immutable_types">Immutable types</h4>
<blockquote>
Str . . . . . . Perl string (finite sequence of Unicode characters)<br />
Bit . . . . . . Perl single bit (allows traits, aliasing, undef, etc.)<br />
Int . . . . . . Perl integer (allows Inf/NaN, arbitrary precision, etc.)<br />
Num. . . . . Perl number (approximate Real, generally via floating point)<br />
Rat. . . . . . Perl rational (exact Real, limited denominator)<br />
FatRat. . . . Perl rational (unlimited precision in both parts)<br />
Complex . . Perl complex number<br />
Bool . . . . . Perl boolean<br />
.<br />
Exception . Perl exception<br />
Block . . . . Executable objects that have lexical scopes<br />
Seq . . . . . A list of values (can be generated lazily)<br />
Range. . . . A pair of ordered endpoints<br />
.<br />
Set. . . . . . Unordered collection of values that allows no duplicates<br />
Bag . . . . . Unordered collection of values that allows duplicates<br />
Enum . . . . An immutable Pair<br />
EnumMap. . A mapping of Enums with no duplicate keys<br />
Signature. . Function parameters (left-hand side of a binding)<br />
Parcel . . . . Arguments in a comma list<br />
LoL . . . . . . Arguments in a semicolon list (or equiv, like Z)<br />
Capture . . . Function call arguments (right-hand side of a binding)<br />
Blob . . . . . An undifferentiated mass of bits<br />
Instant. . . . A point on the continuous atomic timeline<br />
Duration. . . The difference between two Instants<br />
HardRoutine A routine that is committed to not changing</blockquote>
<br /><h4 id="mutable_types">Mutable types</h4>
<blockquote>
Iterator . . . . Perl list<br />
SeqIter . . . . Iterator over a Seq<br />
RangeIter. . . Iterator over a Range<br />
Scalar . . . . . Perl scalar<br />
Array. . . . . . Perl array<br />
Hash. . . . . . Perl hash<br />
KeySet . . . . KeyHash of Bool (does Set in list/array context)<br />
KeyBag . . . . KeyHash of UInt (does Bag in list/array context)<br />
Pair. . . . . . . A single key-to-value association<br />
PairSeq . . . . A Seq of Pairs<br />
Buf . . . . . . . Perl buffer (a stringish array of memory locations)<br />
IO. . . . . . . . Perl filehandle<br />
Routine . . . . Base class for all wrappable executable objects<br />
Sub. . . . . . . Perl subroutine<br />
Method . . . . Perl method<br />
Submethod. . Perl subroutine acting like a method<br />
Macro . . . . . Perl compile-time subroutine<br />
Regex . . . . . Perl pattern<br />
Match . . . . . Perl match, usually produced by applying a pattern<br />
Stash. . . . . . A symbol table hash (package, module, class, lexpad, etc)<br />
SoftRoutine. . A routine that is committed to staying mutable</blockquote>
<br /><h3 id="low_level_data_types">Low level data types</h3>
<p>
This is more low level than the last table. These types are more meant to give the compiler optimizing hints.</p>
<blockquote>
int1. . . . . . . <br />
int2. . . . . . . <br />
int4. . . . . . . <br />
int8. . . . . . . <br />
int16 . . . . . . <br />
int32. . . . . . (aka int on 32-bit machines)<br />
int64. . . . . . (aka int on 64-bit machines)<br />
int128. . . . . (aka int on 128-bit machines)<br />
uint1. . . . . . (aka bit)<br />
uint2. . . . . . <br />
uint4. . . . . . <br />
uint8. . . . . . (aka byte)<br />
uint16 . . . . . <br />
uint32 . . . . . <br />
uint64 . . . . . <br />
uint128. . . . . <br />
num16 . . . . . <br />
num32 . . . . . <br />
num64 . . . . . (aka num on most architectures)<br />
num128 . . . . <br />
complex16 . . <br />
complex32 . . <br />
complex64 . . (aka complex on most architectures)<br />
complex128 . <br />
rat8. . . . . . . <br />
rat16. . . . . . <br />
rat32. . . . . . <br />
rat64. . . . . . <br />
rat128. . . . . <br />
buf8 . . . . . . aka buf, a &quot;normal&quot; byte buffer<br />
buf16 . . . . . a uint16 buffer<br />
buf32 . . . . . a uint32 buffer<br />
buf64 . . . . . a uint64 buffer</blockquote>
<br /><h3 id="object_introspection">Object Introspection</h3>
<blockquote>
WHAT . . . . . short name of the class that an object belongs to<br />
WHICH . . . . object ID (type)<br />
WHO. . . . . . package, that support that object, long name in string context<br />
WHERE . . . . memory address of the object<br />
HOW. . . . . . object of meta class: &quot;Higher Order Workings&quot;<br />
WHEN. . . . . (reserved for events?)<br />
WHY. . . . . . (reserved for documentation)<br />
WHENCE . . . autovivification of closures</blockquote>
<br /><h2 id="operators">Operators</h2>
<h3 id="table_of_precedence">Table of precedence</h3>
<blockquote>
A . . . Level . . . . . . . . . . . . Examples . .<br />
= . ========== . . . ==================<br />
N . Terms . . . . . . . . . . 42 3.14 &quot;eek&quot; qq[&quot;foo&quot;] $x :!verbose @$array<br />
L . Method postfix . . . . .meth .+ .? .* .() .[] .{} .&lt;&gt; .&lt;&lt;&gt;&gt; .:: .= .^ .:<br />
N . Autoincrement . . . . ++ --<br />
R . Exponentiation . . . . **<br />
L . Symbolic unary . . . . ! + - ~ ? | || +^ ~^ ?^ ^<br />
L . Multiplicative. . . . . . * / % %% +&amp; +&lt; +&gt; ~&amp; ~&lt; ~&gt; ?&amp; div mod gcd lcm<br />
L . Additive . . . . . . . . . + - +| +^ ~| ~^ ?| ?^<br />
L . Replication . . . . . . . x xx<br />
X . Concatenation . . . . . ~<br />
X . Junctive and . . . . . . &amp;<br />
X . Junctive or . . . . . . . | ^<br />
L . Named unary. . . . . . sleep abs sin temp let<br />
N . Structural infix . . . . but does &lt;=&gt; leg cmp .. ..^ ^.. ^..^<br />
C . Chaining infix . . . . . != == &lt; &lt;= &gt; &gt;= eq ne lt le gt ge ~~ === eqv !eqv<br />
X . Tight and . . . . . . . . &amp;&amp;<br />
X . Tight or . . . . . . . . . || ^^ // min max<br />
R . Conditional. . . . . . . ?? !! ff fff<br />
R . Item assignment . . . = =&gt; += -= **= xx= .=<br />
L . Loose unary . . . . . . so not<br />
X . Comma operator . . . , :<br />
X . List infix. . . . . . . . . Z minmax X X~ X* Xeqv ...<br />
R . List prefix. . . . . . . . print push say die map substr ... <span class="nlw_phrase">[+] [*] any Z=<!-- wiki: {{[+] [*] any Z=}} --></span><br />
X . Loose and. . . . . . . . and andthen<br />
X . Loose or. . . . . . . . . or xor orelse<br />
X . Sequencer . . . . . . . &lt;== ==&gt; &lt;&lt;== ==&gt;&gt;<br />
N . Terminator . . . . . . . ; {...} unless extra ) ] }</blockquote>
<br /><h3 id="operator_associativity">Operator Associativity</h3>
<table style="border-collapse: collapse;" class="formatter_table">
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">Assoc</td>
<td style="border: 1px solid black;padding: .2em;">Meaning of $a ! $b ! $c</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">L</td>
<td style="border: 1px solid black;padding: .2em;">left</td>
<td style="border: 1px solid black;padding: .2em;">($a ! $b) ! $c</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">R</td>
<td style="border: 1px solid black;padding: .2em;">right</td>
<td style="border: 1px solid black;padding: .2em;">$a ! ($b ! $c)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">N</td>
<td style="border: 1px solid black;padding: .2em;">non</td>
<td style="border: 1px solid black;padding: .2em;">ILLEGAL</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">C</td>
<td style="border: 1px solid black;padding: .2em;">chain</td>
<td style="border: 1px solid black;padding: .2em;">($a ! $b) and ($b ! $c)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">X</td>
<td style="border: 1px solid black;padding: .2em;">list</td>
<td style="border: 1px solid black;padding: .2em;">infix:&lt;!&gt;($a; $b; $c)</td>
</tr>
</table>
<br /><h3 id="categories">Categories</h3>
<h4 id="main">Main</h4>
<p>
These are the categories of the main language grammar. The first category is the metacategory that can used to produce new ones. Sublanguages such as quoting and regexes can provide their own.</p>
<blockquote>
category:&lt;prefix&gt;<br />
circumfix:&lt;( )&gt;<br />
dotty:&lt;.&gt;<br />
infix:&lt;+&gt;<br />
infix_circumfix_meta_operator:{'«','»'}<br />
infix_postfix_meta_operator:&lt;=&gt;<br />
infix_prefix_meta_operator:&lt;!&gt;<br />
package_declarator:&lt;class&gt;<br />
postcircumfix:&lt;( )&gt;<br />
postfix:&lt;++&gt;<br />
postfix_prefix_meta_operator:{'»'}<br />
prefix:&lt;++&gt;<br />
<span class="nlw_phrase">prefix_circumfix_meta_operator:{'[',']'} <!-- wiki: {{prefix_circumfix_meta_operator:{'[',']'} }} --></span><br />
prefix_postfix_meta_operator:{'«'}<br />
quote:&lt;q&gt;<br />
routine_declarator:&lt;sub&gt;<br />
scope_declarator:&lt;my&gt;<br />
sigil:&lt;$&gt;<br />
special_variable:&lt;$!&gt;<br />
statement_control:&lt;if&gt;<br />
statement_mod_cond:&lt;if&gt;<br />
statement_mod_loop:&lt;while&gt;<br />
statement_prefix:&lt;do&gt;<br />
term:&lt;*&gt;<br />
trait_auxiliary:&lt;is&gt;<br />
trait_verb:&lt;of&gt;<br />
twigil:&lt;?&gt;<br />
type_declarator:&lt;subset&gt;</blockquote>
<br /><h4 id="regex">Regex</h4>
<p>
The Regex language has following categories:</p>
<blockquote>
assertion:sym&lt;!&gt;<br />
backslash:sym&lt;w&gt;<br />
metachar:sym&lt;.&gt;<br />
mod_internal:sym&lt;P5&gt;<br />
quantifier:sym&lt;*&gt;</blockquote>
<br /><h3 id="metaoperators">Metaoperators</h3>
<p>
M. appear mostly before or around regular operators and give them different meaning or greater range.<br />
They can be nested like <em>@a X[+=] @b</em>, but be careful with that.<br />
In the example V stands for Value, L for left Value, and R for right. A number is the array index.<br />
Words in the second column are short explanation or an aliasing method if followed by ().</p>
<blockquote>
<span class="nlw_phrase">op=<!-- wiki: {{op=}} --></span> . . . self assign. . . known from P5, <span class="nlw_phrase">$L &lt;op&gt;= $R<!-- wiki: {{$L &lt;op&gt;= $R}} --></span> equals <span class="nlw_phrase">$L = $L op $R<!-- wiki: {{$L = $L op $R}} --></span><br />
<span class="nlw_phrase">!op<!-- wiki: {{!op}} --></span>. . . . negation. . . . known from P5, <span class="nlw_phrase">$L !&lt;op&gt; $R<!-- wiki: {{$L !&lt;op&gt; $R}} --></span> equals <span class="nlw_phrase">!($L op $R)<!-- wiki: {{!($L op $R)}} --></span><br />
<span class="nlw_phrase">Rop<!-- wiki: {{Rop}} --></span> . . . reverse. . . . . reverses the order of the operands<br />
<span class="nlw_phrase">Sop<!-- wiki: {{Sop}} --></span> . . . sequence . . . like reduction, only synchronous, execution in listed order is guaranteed; suppresses any explicit or implicit parallelism<br />
<span class="nlw_phrase">&gt;&gt;op<!-- wiki: {{&gt;&gt;op}} --></span> . . hyper . . . . . . processes arrays eager and in parallel or applies a single value to all array elements;<br />
. . . . . . . . . . . . . . . . . @E = $L[0] op $R[0], $L[1] op $R[1], ...;<br />
<span class="nlw_phrase">&lt;&lt;op<!-- wiki: {{&lt;&lt;op}} --></span> . . hyper . . . . . . like above, points to the side which determines dimensionality;<br />
. . . . . . . . . . . . . . . . . @E = $L[0] op $R[0], $L[1] op $R[1], ...;<br />
<span class="nlw_phrase">[op]<!-- wiki: {{[op]}} --></span>. . . reduce() . . . . applies the operator between all elements of an array;<br />
. . . . . . . . . . . . . . . . . $result = $V[0] op $V[1] op ...;<br />
<span class="nlw_phrase">[\op]<!-- wiki: {{[\op]}} --></span> . . triangle(). . . . applies above reduction to a series of lists made of array slices ranging in length from 1 to the complete length of the original list;<br />
. . . . . . . . . . . . . . . . . @result = $V[0], $V[0] op $V[1], $V[0] op $V[1] op $V[2], ...;<br />
<span class="nlw_phrase">Xop<!-- wiki: {{Xop}} --></span> . . . crosswith(). . . performs the operator to all the pairs of the Cartesian product of two arrays;<br />
. . . . . . . . . . . . . . . . . @result = $L[0] op $R[0], $L[0] op $R[1], $L[1] op $R[0], $L[1] op $R[1]<br />
<span class="nlw_phrase">Zop<!-- wiki: {{Zop}} --></span> . . . zipwith() . . . . like hyper, but evaluates lazy<br />
. . . . . . . . . . . . . . . . . @result = $L[0] op $R[0], $L[1] op $R[1], ...</blockquote>
<br /><h3 id="unicode_operators">Unicode operators</h3>
<p>
The two hyper operators can be written with the Unicode &quot;chevron&quot; signs (also documented as &quot;French Quotes&quot;) or with double less than or greater than signs (documented as &quot;Texas Quotes&quot;).</p>
<blockquote>
« aka <span class="nlw_phrase">&lt;&lt;<!-- wiki: {{&lt;&lt;}} --></span><br />
» aka <span class="nlw_phrase">&gt;&gt;<!-- wiki: {{&gt;&gt;}} --></span></blockquote>
<br /><h3 id="contextualizers">Contextualizers</h3>
<p>
Infix operator or functions that forcing a context.</p>
<blockquote>
$(). . . . item(). . . . . <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet#scalar">scalar/item context</a><!-- wiki: "scalar/item context"{link: [Perl 6 Variable Tablet] Scalar} --></span><br />
? . . . . . so(). . . . . . <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_operator_tablet#bool_context">boolean</a><!-- wiki: "boolean"{link: [Perl 6 Operator Tablet] bool context} --></span><br />
! . . . . . not() . . . . . negated bool context<br />
+. . . . . . . . . . . . . . <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_operator_tablet#numeric_context">numeric</a><!-- wiki: "numeric"{link: [Perl 6 Operator Tablet] numeric context} --></span><br />
- . . . . . . . . . . . . . . negated num context<br />
~. . . . . . . . . . . . . . <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_operator_tablet#string_context">string</a><!-- wiki: "string"{link: [Perl 6 Operator Tablet] string context} --></span><br />
@() . . . list() . . . . . <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet#array">array/list context</a><!-- wiki: "array/list context"{link: [Perl 6 Variable Tablet] Array} --></span><br />
. . . . . . flat() . . . . . flat list<br />
. . . . . . lol(). . . . . . list of list (was slice context before)<br />
%() . . . hash() . . . . <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet#hash">hash context</a><!-- wiki: "hash context"{link: [Perl 6 Variable Tablet] Hash} --></span><br />
&amp;(). . . . code() . . . . <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet#callable">coderef</a><!-- wiki: "coderef"{link: [Perl 6 Variable Tablet] Callable} --></span>, <span class="nlw_phrase"><a title="section link" href="#routines">routines</a><!-- wiki: "routines"{link: Routines} --></span><br />
| . . . . . . . . . . . . . . flatten <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet#capture">capture</a><!-- wiki: "capture"{link: [Perl 6 Variable Tablet] capture} --></span> object into arglist (named parameter)<br />
||. . . . . . . . . . . . . . flatten <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet#capture">capture</a><!-- wiki: "capture"{link: [Perl 6 Variable Tablet] capture} --></span> object into semicolon list (positional parameter)</blockquote>
<br /><h3 id="smartmatch">Smartmatch</h3>
<p>
When used as infix $_ is the left side, X is right. In when clauses just X is stated. Selection of the comparison alhorithm (4th column) is based on the <span class="nlw_phrase"><a title="section link" href="#value_types">value types</a><!-- wiki: "value types"{link: Value Types} --></span> as stated in the first two columns.</p>
<table style="border-collapse: collapse;" class="formatter_table">
<tr>
<td style="border: 1px solid black;padding: .2em;">$_</td>
<td style="border: 1px solid black;padding: .2em;">X</td>
<td style="border: 1px solid black;padding: .2em;">Type of Match Implied</td>
<td style="border: 1px solid black;padding: .2em;">Match if (given $_)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">True</td>
<td style="border: 1px solid black;padding: .2em;">~~ True</td>
<td style="border: 1px solid black;padding: .2em;">(parsewarn)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">False</td>
<td style="border: 1px solid black;padding: .2em;">~~ False match</td>
<td style="border: 1px solid black;padding: .2em;">(parsewarn)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">*</td>
<td style="border: 1px solid black;padding: .2em;">block signature match</td>
<td style="border: 1px solid black;padding: .2em;">block successfully binds to (pipe)$_ (flattened arglist)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Callable:($)</td>
<td style="border: 1px solid black;padding: .2em;">item sub truth</td>
<td style="border: 1px solid black;padding: .2em;">X($_)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Callable:()</td>
<td style="border: 1px solid black;padding: .2em;">simple closure truth</td>
<td style="border: 1px solid black;padding: .2em;"><span class="nlw_phrase">X() (ignoring $_)<!-- wiki: {{X() (ignoring $_)}} --></span></td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Bool</td>
<td style="border: 1px solid black;padding: .2em;">simple truth</td>
<td style="border: 1px solid black;padding: .2em;">X</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Match</td>
<td style="border: 1px solid black;padding: .2em;">match success</td>
<td style="border: 1px solid black;padding: .2em;">X</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Numeric</td>
<td style="border: 1px solid black;padding: .2em;">numeric equality</td>
<td style="border: 1px solid black;padding: .2em;"><span class="nlw_phrase">+$_ = X<!-- wiki: {{+$_ = X}} --></span></td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Stringy</td>
<td style="border: 1px solid black;padding: .2em;">string equality</td>
<td style="border: 1px solid black;padding: .2em;"><span class="nlw_phrase">~$_ eq X<!-- wiki: {{~$_ eq X}} --></span></td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Whatever</td>
<td style="border: 1px solid black;padding: .2em;">always matches</td>
<td style="border: 1px solid black;padding: .2em;">True</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Nil</td>
<td style="border: 1px solid black;padding: .2em;">is nil</td>
<td style="border: 1px solid black;padding: .2em;">$_ === Nil</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">Pair</td>
<td style="border: 1px solid black;padding: .2em;">test hash mapping</td>
<td style="border: 1px solid black;padding: .2em;"><span class="nlw_phrase">$_{X.key} ~~ X.value<!-- wiki: {{$_{X.key} ~~ X.value}} --></span></td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Pair</td>
<td style="border: 1px solid black;padding: .2em;">test object attribute</td>
<td style="border: 1px solid black;padding: .2em;"><span class="nlw_phrase">?.&quot;{X.key}&quot; = ?X.value (e.g. filetests)<!-- wiki: {{?.&quot;{X.key}&quot; = ?X.value (e.g. filetests)}} --></span></td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Set</td>
<td style="border: 1px solid black;padding: .2em;">Set</td>
<td style="border: 1px solid black;padding: .2em;">identical sets</td>
<td style="border: 1px solid black;padding: .2em;">$_ === X</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">Set</td>
<td style="border: 1px solid black;padding: .2em;">hash keys same set</td>
<td style="border: 1px solid black;padding: .2em;">$_.keys === X</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Set</td>
<td style="border: 1px solid black;padding: .2em;">force set comparison</td>
<td style="border: 1px solid black;padding: .2em;">Set($_) === X</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Array</td>
<td style="border: 1px solid black;padding: .2em;">Array</td>
<td style="border: 1px solid black;padding: .2em;">arrays are comparable</td>
<td style="border: 1px solid black;padding: .2em;">$_ «===» X (dwims * wildcards!)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Set</td>
<td style="border: 1px solid black;padding: .2em;">Array</td>
<td style="border: 1px solid black;padding: .2em;">array equiv to set</td>
<td style="border: 1px solid black;padding: .2em;">$_ === Set(X)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Array</td>
<td style="border: 1px solid black;padding: .2em;">lists are comparable</td>
<td style="border: 1px solid black;padding: .2em;">@$_ «===» X</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">hash keys same set</td>
<td style="border: 1px solid black;padding: .2em;">$_.keys === X.keys</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Set</td>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">hash keys same set</td>
<td style="border: 1px solid black;padding: .2em;">$_ === X.keys</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Array</td>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">hash slice existence</td>
<td style="border: 1px solid black;padding: .2em;">X.{any @$_}:exists</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Regex</td>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">hash key grep</td>
<td style="border: 1px solid black;padding: .2em;">any(X.keys).match($_)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Cool</td>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">hash entry existence</td>
<td style="border: 1px solid black;padding: .2em;">X.{$_}:exists</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">hash slice existence</td>
<td style="border: 1px solid black;padding: .2em;">X.{any @$_}:exists</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Str</td>
<td style="border: 1px solid black;padding: .2em;">Regex</td>
<td style="border: 1px solid black;padding: .2em;">string pattern match</td>
<td style="border: 1px solid black;padding: .2em;">.match(X)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Hash</td>
<td style="border: 1px solid black;padding: .2em;">Regex</td>
<td style="border: 1px solid black;padding: .2em;">hash key &quot;boolean grep&quot;</td>
<td style="border: 1px solid black;padding: .2em;">.any.match(X)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Array</td>
<td style="border: 1px solid black;padding: .2em;">Regex</td>
<td style="border: 1px solid black;padding: .2em;">array &quot;boolean grep&quot;</td>
<td style="border: 1px solid black;padding: .2em;">.any.match(X)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Regex</td>
<td style="border: 1px solid black;padding: .2em;">pattern match</td>
<td style="border: 1px solid black;padding: .2em;">.match(X)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Num</td>
<td style="border: 1px solid black;padding: .2em;">Range</td>
<td style="border: 1px solid black;padding: .2em;">in numeric range</td>
<td style="border: 1px solid black;padding: .2em;">X.min &lt;= $_ &lt;= X.max (mod ^'s)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Str</td>
<td style="border: 1px solid black;padding: .2em;">Range</td>
<td style="border: 1px solid black;padding: .2em;">in string range</td>
<td style="border: 1px solid black;padding: .2em;">X.min le $_ le X.max (mod ^'s)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Range</td>
<td style="border: 1px solid black;padding: .2em;">Range</td>
<td style="border: 1px solid black;padding: .2em;">subset range</td>
<td style="border: 1px solid black;padding: .2em;">!$_ or .bounds.all ~~ X (mod ^'s)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Range</td>
<td style="border: 1px solid black;padding: .2em;">in generic range</td>
<td style="border: 1px solid black;padding: .2em;"><span class="nlw_phrase">[!after] X.min,$_,X.max (etc.)<!-- wiki: {{[!after] X.min,$_,X.max (etc.)}} --></span></td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Type</td>
<td style="border: 1px solid black;padding: .2em;">type membership</td>
<td style="border: 1px solid black;padding: .2em;">$_.does(X)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Signature</td>
<td style="border: 1px solid black;padding: .2em;">Signature</td>
<td style="border: 1px solid black;padding: .2em;">sig compatibility</td>
<td style="border: 1px solid black;padding: .2em;">$_ is a subset of X ???</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Callable</td>
<td style="border: 1px solid black;padding: .2em;">Signature</td>
<td style="border: 1px solid black;padding: .2em;">sig compatibility</td>
<td style="border: 1px solid black;padding: .2em;">$_.sig is a subset of X ???</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Capture</td>
<td style="border: 1px solid black;padding: .2em;">Signature</td>
<td style="border: 1px solid black;padding: .2em;">parameters bindable</td>
<td style="border: 1px solid black;padding: .2em;">$_ could bind to X (doesn't!)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Signature</td>
<td style="border: 1px solid black;padding: .2em;">parameters bindable</td>
<td style="border: 1px solid black;padding: .2em;">(pipe)$_ could bind to X (doesn't!)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">Any</td>
<td style="border: 1px solid black;padding: .2em;">scalars are identical</td>
<td style="border: 1px solid black;padding: .2em;">$_ === X</td>
</tr>
</table>
<br /><h3 id="filetest_ops">Filetest Ops</h3>
<p>
Use it as in &quot;$file.:X&quot; or &quot;$file ~~ :X&quot;. (NOTE 2010-11-07: in rakudo this is &quot;$filename.IO ~~ :X&quot;)</p>
<blockquote>
:r . . . file is readable by effective uid/gid.<br />
:w. . . file is writeable by effective uid/gid.<br />
:x . . . file is executable by effective uid/gid.<br />
:o . . . file is owned by effective uid.<br />
.<br />
:R . . . file is readable by real uid/gid.<br />
:W . . . file is writeable by real uid/gid.<br />
:X . . . file is executable by real uid/gid.<br />
:O . . . file is owned by real uid.<br />
.<br />
:e . . . file exists<br />
:s . . . file has size greater than 0<br />
.<br />
:f . . . file is a plain file.<br />
:d . . . file is a directory.<br />
:l . . . file is a symbolic link.<br />
:p . . . file is a named pipe (FIFO), or filehandle is a pipe.<br />
:S . . . file is a socket.<br />
:b . . . file is a block special file.<br />
:c . . . file is a character special file.<br />
:t . . . filehandle is opened to a tty.<br />
.<br />
:u . . . file has setuid bit set.<br />
:g . . . file has setgid bit set.<br />
:k . . . file has sticky bit set.</blockquote>
<br /><h3 id="quoting_ops">Quoting Ops</h3>
<p>
The <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_basics_tablet#quoting">basic quoting operator</a><!-- wiki: "basic quoting operator"{link: [perl_6_basics_tablet]quoting} --></span> (Q) does nothing, just taking literally what you quoted as a string. But with several adverbs, it behaves like the well known following ops:</p>
<table style="border-collapse: collapse;" class="formatter_table">
<tr>
<td style="border: 1px solid black;padding: .2em;">q//</td>
<td style="border: 1px solid black;padding: .2em;">Q :q //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">' '</td>
<td style="border: 1px solid black;padding: .2em;">Q :q //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">qq//</td>
<td style="border: 1px solid black;padding: .2em;">Q :qq //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">&quot; &quot;</td>
<td style="border: 1px solid black;padding: .2em;">Q :qq //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">qw//</td>
<td style="border: 1px solid black;padding: .2em;">Q :q :w //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span class="nlw_phrase">&lt; &gt;<!-- wiki: {{&lt; &gt;}} --></span></td>
<td style="border: 1px solid black;padding: .2em;">Q :q :w //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span class="nlw_phrase">&lt;&lt; &gt;&gt;<!-- wiki: {{&lt;&lt; &gt;&gt;}} --></span></td>
<td style="border: 1px solid black;padding: .2em;">Q :qq :ww //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">qp//</td>
<td style="border: 1px solid black;padding: .2em;">Q :path //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">qx//</td>
<td style="border: 1px solid black;padding: .2em;">Q :exec //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">rx//</td>
<td style="border: 1px solid black;padding: .2em;">Q :regex //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">m//</td>
<td style="border: 1px solid black;padding: .2em;">Q :match //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">ms//</td>
<td style="border: 1px solid black;padding: .2em;">Q :match :sigspace //</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">s///</td>
<td style="border: 1px solid black;padding: .2em;">Q :subst ///</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">ss///</td>
<td style="border: 1px solid black;padding: .2em;">Q :subst :samespace ///</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">tr///</td>
<td style="border: 1px solid black;padding: .2em;">Q :trans ///</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">quasi {}</td>
<td style="border: 1px solid black;padding: .2em;">Q :code //</td>
</tr>
</table>
<br /><h2 id="text_processing">Text Processing</h2>
<h3 id="quoting_adverbs">Quoting Adverbs</h3>
<p>
There are a lot more adverbs to fine tune your quoting. The Adverbs can used with any quoting operator like: Q :s/.../ or qq :p /.../.</p>
<table style="border-collapse: collapse;" class="formatter_table">
<tr>
<td style="border: 1px solid black;padding: .2em;">Short</td>
<td style="border: 1px solid black;padding: .2em;">Long</td>
<td style="border: 1px solid black;padding: .2em;">Meaning</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:q</td>
<td style="border: 1px solid black;padding: .2em;">:single</td>
<td style="border: 1px solid black;padding: .2em;">Interpolate \\, \q and \' (or whatever)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:qq</td>
<td style="border: 1px solid black;padding: .2em;">:double</td>
<td style="border: 1px solid black;padding: .2em;">Interpolate with :s, :a, :h, :f, :c, :b</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:s</td>
<td style="border: 1px solid black;padding: .2em;">:scalar</td>
<td style="border: 1px solid black;padding: .2em;">Interpolate $ vars</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:a</td>
<td style="border: 1px solid black;padding: .2em;">:array</td>
<td style="border: 1px solid black;padding: .2em;">Interpolate @ vars</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:h</td>
<td style="border: 1px solid black;padding: .2em;">:hash</td>
<td style="border: 1px solid black;padding: .2em;">Interpolate % vars</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:f</td>
<td style="border: 1px solid black;padding: .2em;">:function</td>
<td style="border: 1px solid black;padding: .2em;">Interpolate &amp; calls</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:c</td>
<td style="border: 1px solid black;padding: .2em;">:closure</td>
<td style="border: 1px solid black;padding: .2em;">Interpolate {...} expressions</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:b</td>
<td style="border: 1px solid black;padding: .2em;">:backslash</td>
<td style="border: 1px solid black;padding: .2em;">Interpolate <span class="nlw_phrase"><a title="section link" href="#escape_sequences">\n, \t, etc.</a><!-- wiki: "\n, \t, etc."{link: Escape Sequences} --></span> (implies :q at least)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:w</td>
<td style="border: 1px solid black;padding: .2em;">:words</td>
<td style="border: 1px solid black;padding: .2em;">Split result on words (no quote protection)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:ww</td>
<td style="border: 1px solid black;padding: .2em;">:quotewords</td>
<td style="border: 1px solid black;padding: .2em;">Split result on words (with quote protection)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:p</td>
<td style="border: 1px solid black;padding: .2em;">:path</td>
<td style="border: 1px solid black;padding: .2em;">Return a Path object (see S16 for more options)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:to</td>
<td style="border: 1px solid black;padding: .2em;">:heredoc</td>
<td style="border: 1px solid black;padding: .2em;">Parse result as heredoc terminator</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:x</td>
<td style="border: 1px solid black;padding: .2em;">:exec</td>
<td style="border: 1px solid black;padding: .2em;">Execute as command and return results</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:code</td>
<td style="border: 1px solid black;padding: .2em;">Quasiquoting</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:regex</td>
<td style="border: 1px solid black;padding: .2em;">Parse as regex</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:subst</td>
<td style="border: 1px solid black;padding: .2em;">Parse as substitution</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:trans</td>
<td style="border: 1px solid black;padding: .2em;">Parse as transliteration</td>
</tr>
</table>
<br /><h3 id="regex_modifier">Regex Modifier</h3>
<p>
Stay behind the regex op and change the behaviour of the regex, search scope, etc.</p>
<table style="border-collapse: collapse;" class="formatter_table">
<tr>
<td style="border: 1px solid black;padding: .2em;">Short</td>
<td style="border: 1px solid black;padding: .2em;">Long</td>
<td style="border: 1px solid black;padding: .2em;">Meaning</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:g</td>
<td style="border: 1px solid black;padding: .2em;">:global</td>
<td style="border: 1px solid black;padding: .2em;">searches for any finding</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:x(n)</td>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">searches n times (n is an int)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:nth(n)</td>
<td style="border: 1px solid black;padding: .2em;">:st :nd :rd</td>
<td style="border: 1px solid black;padding: .2em;">demands the nth finding, has many aliases for correct spelling (:2nd)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:c(n)</td>
<td style="border: 1px solid black;padding: .2em;">:continue</td>
<td style="border: 1px solid black;padding: .2em;">searches from nth position (counting from 0)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:p(n)</td>
<td style="border: 1px solid black;padding: .2em;">:pos</td>
<td style="border: 1px solid black;padding: .2em;">searches only on nth position (counting from 0)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:ov</td>
<td style="border: 1px solid black;padding: .2em;">:overlap</td>
<td style="border: 1px solid black;padding: .2em;">searches on all positionens just one time (activates backtracking)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:ex</td>
<td style="border: 1px solid black;padding: .2em;">:exhaustive</td>
<td style="border: 1px solid black;padding: .2em;">searches on all positions as long as it findes something (activates backtracking)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:ratchet</td>
<td style="border: 1px solid black;padding: .2em;">deactivates backtracking</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:panic</td>
<td style="border: 1px solid black;padding: .2em;">overwriting of possible set :ratchet for all subrules (activates backtracking)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:keepall</td>
<td style="border: 1px solid black;padding: .2em;">subrules have to memorize everything</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:rw</td>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">the regex has the right to change the string</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:s</td>
<td style="border: 1px solid black;padding: .2em;">:sigspace</td>
<td style="border: 1px solid black;padding: .2em;">whitespace just separate parts of the Regex, don't stand for spaces to look for</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:ss</td>
<td style="border: 1px solid black;padding: .2em;">:samespace</td>
<td style="border: 1px solid black;padding: .2em;">as in :s for substitutions, 1st part replaced with 1st part in second half a.s.o. (ss/teh hsa/the has/;)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:i</td>
<td style="border: 1px solid black;padding: .2em;">:ignorecase</td>
<td style="border: 1px solid black;padding: .2em;">no distinctions between uppercase and lowercase</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:ii</td>
<td style="border: 1px solid black;padding: .2em;">:samecase</td>
<td style="border: 1px solid black;padding: .2em;">substitute with chars of same case as the matching</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:m</td>
<td style="border: 1px solid black;padding: .2em;">:ignoremark</td>
<td style="border: 1px solid black;padding: .2em;">comparing base characters (Unicode non-mark characters) while ignoring any trailing mark characters</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:mm</td>
<td style="border: 1px solid black;padding: .2em;">:samemark</td>
<td style="border: 1px solid black;padding: .2em;">substitute with chars that has same mark/accent pattern as the matched string</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:bytes</td>
<td style="border: 1px solid black;padding: .2em;">searches on byte level</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:chars</td>
<td style="border: 1px solid black;padding: .2em;">searches on character level (default)</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:codes</td>
<td style="border: 1px solid black;padding: .2em;">matches between codepoints</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;"><span style="padding:.5em">&nbsp;</span></td>
<td style="border: 1px solid black;padding: .2em;">:graphs</td>
<td style="border: 1px solid black;padding: .2em;">match language-independent graphemes</td>
</tr>
<tr>
<td style="border: 1px solid black;padding: .2em;">:P5</td>
<td style="border: 1px solid black;padding: .2em;">:Perl5</td>
<td style="border: 1px solid black;padding: .2em;">use the old Regex</td>
</tr>
</table>
<br /><h3 id="regex_metacharacter">Regex Metacharacter</h3>
<blockquote>
. _______ any character<br />
^ ______ begin of the sring<br />
^^ _____ begin of a line<br />
$ _______ end of the string<br />
$$ ______ end of a line<br />
(...)_____ group patterns and capture the result<br />
<span class="nlw_phrase">[...]<!-- wiki: {{[...]}} --></span> _____group patterns without capturing<br />
{...} ____ execute a closure (Perl 6 code) within a rule<br />
&lt;...&gt; ____match a subrule (assertion<br />
| _______ match alternate patterns (logigical OR with LTM)<br />
|| ______ match alternate patterns (sequential OR)<br />
&amp; _______ match multiple patterns (AND)<br />
** ______ muliply this (meta)char/subrule times the following digit on right side<br />
% ______ match this (meta)char/subrule as long as separated by (meta)char/subrule on the right<br />
%% ____ like %, but allows trailing separator<br />
\ _______ escape a metacharacter to get a literal character, or escape a literal character to get a metacharacter<br />
# _______ mark a comment (to the end of the line)<br />
:= ______ bind the result of a match to a hypothetical variable</blockquote>
<br /><h3 id="quantifier">Quantifier</h3>
<blockquote>
? _______ zero or one<br />
+ _______ one or more<br />
* _______ zero or more<br />
** ______ maximal greedy matching<br />
** ______ muliply this (meta)char/subrule times the following digit on right side<br />
**? _____ minimal matching<br />
% ______ match this (meta)char/subrule as long as separated by (meta)char/subrule on the right<br />
%%_____ like %, but allows trailing separator</blockquote>
<br /><h3 id="control_chars">Control Chars</h3>
<p>
These Escape Sequences will be evaluated inside quotes to invisible control chars, if the &quot;:b&quot; aka &quot;:backslash&quot; quoting Adverbs is set (included in :quotewords and :double). They are also usable in regexes and thatswhy also included in the next list.</p>
<blockquote>
\a . . . . . . . . BELL<br />
\b . . . . . . . . BACKSPACE<br />
\e . . . . . . . . ESCAPE<br />
\f . . . . . . . . FORM FEED<br />
\n . . . . . . . . LINE FEED<br />
\r . . . . . . . . CARRIAGE RETURN<br />
\t . . . . . . . . TAB</blockquote>
<br /><h3 id="escape_sequences">Escape Sequences</h3>
<p>
To be used just inside of regexes (m/.../, s/.../.../ and tr/.../.../ and methods like comb('...')).</p>
<blockquote>
\0[ ... ] . . character given in octal (brackets optional)<br />
\b . . . . . . word boundary<br />
\B . . . . . . Match when not on a word boundary<br />
\c[ ... ] . . named character or control character<br />
\C[ ... ] . . any character except the bracketed named or control character<br />
\d. . . . . . digit<br />
\D. . . . . . nondigit<br />
\e. . . . . . escape character<br />
\E. . . . . . anything but an escape character<br />
\f . . . . . . form feed<br />
\F. . . . . . anything but a form feed<br />
\n. . . . . . (logical) newline<br />
\N. . . . . . anything but a (logical) newline<br />
\h. . . . . . horizontal whitespace<br />
\H. . . . . . anything but horizontal whitespace<br />
\L[ ... ] . . Everything within the brackets is lowercase<br />
\Q[ ... ]. . all metacharacters within the brackets match as literal characters<br />
\r . . . . . . return<br />
\R. . . . . . anything but a return<br />
\s. . . . . . any whitespace character<br />
\S. . . . . . anything but whitespace<br />
\t . . . . . . a tab<br />
\T. . . . . . anything but a tab<br />
\U[ ... ] . . Everything within the brackets is uppercase<br />
\v. . . . . . vertical whitespace<br />
\V. . . . . . anything but vertical whitespace<br />
\w. . . . . . word character (Unicode alphanumeric plus &quot;_&quot;)<br />
\W . . . . . anything but a word character<br />
\x[ ... ] . . character given in hexadecimal (brackets optional)<br />
\X[ ... ] . . anything but the character given in hexadecimal (brackets optional)</blockquote>
<br /><p>
zero-width boundaries begin with a pipe symbol</p>
<blockquote>
|c . . . . . codepoint boundary (always matches in grapheme/codepoint mode)<br />
|g . . . . . grapheme boundary (always matches in grapheme mode)<br />
|w . . . . . word boundary aka &lt;wb&gt;</blockquote>
<br /><h3 id="subrules">Subrules</h3>
<p>
predefined rules (see <span class="nlw_phrase"><a title="section link" href="#routine_types">routine type</a><!-- wiki: "routine type"{link: Routine Types} --></span> rule) for any grammar or regex. They can have prefixes: <strong>.</strong> (dot) marks a non-capturing subrule, <strong>?</strong> and <strong>!</strong> are also non-capturing positive and negative zero width assertions,</p>
<blockquote>
&lt;alpha&gt; . . . . . . . single alphabetic character<br />
&lt;upper&gt; . . . . . . . uppercase char<br />
&lt;lower&gt; . . . . . . . lowercase char<br />
&lt;digit&gt;. . . . . . . . single digit<br />
&lt;xdigit&gt; . . . . . . . hexadecimal digit<br />
&lt;alnum&gt;. . . . . . . alphanumeric char, equivalent to &lt;+alpha +digit&gt;<br />
&lt;punct&gt; . . . . . . . punctuation char<br />
&lt;ident&gt; . . . . . . . an identifier<br />
&lt;print&gt;. . . . . . . . printable char<br />
&lt;graph&gt; . . . . . . . &quot;graphical&quot; char like kanji<br />
&lt;cntrl&gt;. . . . . . . . control char, e.g. newline and backspace<br />
&lt;blank&gt; . . . . . . . mostly a space or tab<br />
&lt;space&gt; . . . . . . . whitespace character aka \s<br />
&lt;ws&gt; . . . . . . . . . whitespace, roughly equals \s*<br />
&lt;wb&gt; . . . . . . . . . zero-width word boundary, spot with between \w and \W<br />
&lt;ww&gt;. . . . . . . . . zero-width inside word spot between \w and \w<br />
&lt;?before pattern&gt;. zero-width lookahead<br />
&lt;!before pattern&gt;. negative zero-width lookahead, true if the pattern does not match<br />
&lt;?after pattern&gt;. . zero-width lookbehind<br />
&lt;!after pattern&gt; . . negative zero-width lookbehind<br />
&lt;?same&gt;. . . . . . . zero-width between two identical chars<br />
&lt;prior&gt;. . . . . . . . last matched pattern<br />
&lt;?&gt; . . . . . . . . . . matches nothing, always true<br />
&lt;!&gt; . . . . . . . . . . always false</blockquote>
<br /><h2 id="flow_control">Flow Control</h2>
<h3 id="closure_traits">Closure Traits</h3>
<p>
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 &quot;BEGIN my $x = 3 * 3;&quot;.</p>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#begin_phaser">BEGIN</a><!-- wiki: "BEGIN"{link: [Perl 6 Index Tablet]BEGIN phaser} --></span> {...}*. . . at compile time, ASAP, only ever runs once<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#check_phaser">CHECK</a><!-- wiki: "CHECK"{link: [Perl 6 Index Tablet]CHECK phaser} --></span> {...}* . . at compile time, ALAP, only ever runs once<br />
.<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#init_phaser">INIT</a><!-- wiki: "INIT"{link: [Perl 6 Index Tablet]INIT phaser} --></span> {...}*. . . . at run time, ASAP, only ever runs once<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#end_phaser">END</a><!-- wiki: "END"{link: [Perl 6 Index Tablet]END phaser} --></span> {...}. . . . . at run time, ALAP, only ever runs once<br />
.<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#start_phaser">START</a><!-- wiki: "START"{link: [Perl 6 Index Tablet]START phaser} --></span> {...}* . . on first ever execution, once per closure clone<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#enter_phaser">ENTER</a><!-- wiki: "ENTER"{link: [Perl 6 Index Tablet]ENTER phaser} --></span> {...}* . . at every block entry time, repeats on loop blocks.<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#leave_phaser">LEAVE</a><!-- wiki: "LEAVE"{link: [Perl 6 Index Tablet]LEAVE phaser} --></span> {...} . . . at every block exit time<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#keep_phaser">KEEP</a><!-- wiki: "KEEP"{link: [Perl 6 Index Tablet]KEEP phaser} --></span> {...} . . . . at every successful block exit, part of LEAVE queue<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#undo_phaser">UNDO</a><!-- wiki: "UNDO"{link: [Perl 6 Index Tablet]UNDO phaser} --></span> {...}. . . . at every unsuccessful block exit, part of LEAVE queue<br />
.<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#first_phaser">FIRST</a><!-- wiki: "FIRST"{link: [Perl 6 Index Tablet]FIRST phaser} --></span> {...}*. . . at loop initialization time, before any ENTER<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#next_phaser">NEXT</a><!-- wiki: "NEXT"{link: [Perl 6 Index Tablet]NEXT phaser} --></span> {...} . . . . at loop continuation time, before any LEAVE<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#last_phaser">LAST</a><!-- wiki: "LAST"{link: [Perl 6 Index Tablet]LAST phaser} --></span> {...} . . . . at loop termination time, after any LEAVE<br />
.<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#pre_phaser">PRE</a><!-- wiki: "PRE"{link: [Perl 6 Index Tablet]PRE phaser} --></span> {...} . . . . . assert precondition at every block entry, before ENTER<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#post_phaser">POST</a><!-- wiki: "POST"{link: [Perl 6 Index Tablet]POST phaser} --></span> {...} . . . . assert postcondition at every block exit, after LEAVE<br />
.<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#catch_phaser">CATCH</a><!-- wiki: "CATCH"{link: [Perl 6 Index Tablet]CATCH phaser} --></span> {...} . . . catch exceptions, before LEAVE<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#control_phaser">CONTROL</a><!-- wiki: "CONTROL"{link: [Perl 6 Index Tablet]CONTROL phaser} --></span> {...}. . catch control exceptions (like next/last/return etc), before LEAVE</blockquote>
<br /><h3 id="jump_commands">Jump Commands</h3>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#goto">goto</a><!-- wiki: "goto"{link: [Perl 6 Index Tablet]goto} --></span> . . . . jump to a named label<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#redo">redo</a><!-- wiki: "redo"{link: [Perl 6 Index Tablet]redo} --></span> . . . . repeat this loop turn<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#next">next</a><!-- wiki: "next"{link: [Perl 6 Index Tablet]next} --></span> . . . . skip to the next loop turn<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#last">last</a><!-- wiki: "last"{link: [Perl 6 Index Tablet]last} --></span>. . . . . leave this loop now<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#break">break</a><!-- wiki: "break"{link: [Perl 6 Index Tablet]break} --></span>. . . . leave this when clause<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#leave">leave</a><!-- wiki: "leave"{link: [Perl 6 Index Tablet]leave} --></span>. . . . leave this block with a return value<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#return">return</a><!-- wiki: "return"{link: [Perl 6 Index Tablet]return} --></span> . . . leave this routine with a return value</blockquote>
<br /><h3 id="conditionals">Conditionals</h3>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#if">if</a><!-- wiki: "if"{link: [Perl 6 Index Tablet]if} --></span> . . . . . . when following expression evals in boolean context to True, the block that following after that will be executed<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#elsif">elsif</a><!-- wiki: "elsif"{link: [Perl 6 Index Tablet]elsif} --></span> . . . . works like if, but only recognized if no preceding &quot;if&quot; or &quot;elsif&quot; clause was executed<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#else">else</a><!-- wiki: "else"{link: [Perl 6 Index Tablet]else} --></span> . . . . following block will be executed, when no preceding &quot;if&quot; or &quot;elsif&quot; clause was executed<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#unless">unless</a><!-- wiki: "unless"{link: [Perl 6 Index Tablet]unless} --></span>. . . opposite of if, no &quot;elsif&quot; or &quot;else&quot; is allowed to follow<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#given">given</a><!-- wiki: "given"{link: [Perl 6 Index Tablet]given} --></span> . . . evals an expression into scalar context assignes it to $_ for the following block<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#when">when</a><!-- wiki: "when"{link: [Perl 6 Index Tablet]when} --></span> . . . smartmatches an expression against $_; if the result is True, the following block will be executed<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#default">default</a><!-- wiki: "default"{link: [Perl 6 Index Tablet]default} --></span> . . following block will be executed, when no &quot;when&quot; clause was executed</blockquote>
<br /><h3 id="loops">Loops</h3>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#loop">loop</a><!-- wiki: "loop"{link: [Perl 6 Index Tablet]loop} --></span> . . . . general (endless) loop, unless used as an C-style-loop, evals following expression into void context<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#repeat">repeat</a><!-- wiki: "repeat"{link: [Perl 6 Index Tablet]repeat} --></span>. . . initial command for while or until loops that have their condtion at the end<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#while">while</a><!-- wiki: "while"{link: [Perl 6 Index Tablet]while} --></span>. . . . loop with negative exit condition (exit when False), condition, evals expression into boolean context<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#until">until</a><!-- wiki: "until"{link: [Perl 6 Index Tablet]until} --></span> . . . . loop with positive exit condition(exit when True), evals expression into boolean context<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#for">for</a><!-- wiki: "for"{link: [Perl 6 Index Tablet]for} --></span> . . . . . 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),</blockquote>
<br /><h3 id="routines">Routines</h3>
<p>
routine definition: <span class="nlw_phrase">[<!-- wiki: {{[}} --></span> <span class="nlw_phrase"><a title="section link" href="#scopes">scope</a><!-- wiki: "scope"{link: scopes} --></span> <span class="nlw_phrase">] [modifier] type [name] [trait] (signature)<!-- wiki: {{] [modifier] type [name] [trait] (signature)}} --></span> { block }</p>
<h4 id="routine_types">Routine Types</h4>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#sub">sub</a><!-- wiki: "sub"{link: [Perl 6 Index Tablet]sub} --></span>. . . . . . . . normal routine, named block with parmeters<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#method">method</a><!-- wiki: "method"{link: [Perl 6 Index Tablet]method} --></span> . . . . . inheritable object methods<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#submethod">submethod</a><!-- wiki: "submethod"{link: [Perl 6 Index Tablet]submethod} --></span>. . . not inheritable methods <br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#regex">regex</a><!-- wiki: "regex"{link: [Perl 6 Index Tablet]regex} --></span> . . . . . . routine that executes a regular expression<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#rule">rule</a><!-- wiki: "rule"{link: [Perl 6 Index Tablet]rule} --></span> . . . . . . . alias to regex :ratchet :sigspace<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#token">token</a><!-- wiki: "token"{link: [Perl 6 Index Tablet]token} --></span> . . . . . . alias to regex :ratchet<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#macro">macro</a><!-- wiki: "macro"{link: [Perl 6 Index Tablet]macro} --></span>. . . . . . routine that is compiled to an AST at BEGIN (ASAP, compile time)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#quasi">quasi</a><!-- wiki: "quasi"{link: [Perl 6 Index Tablet]quasi} --></span> . . . . . . block that is compiled to an AST at runtime</blockquote>
<br /><h4 id="routine_modifier">Routine Modifier</h4>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#multi_routine_modifier">multi</a><!-- wiki: "multi"{link: [Perl 6 Index Tablet]multi routine modifier} --></span>. . . . . marks routines, witch can have siblings with same name but different signature; when called, the one with matching sig is executed<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#only_routine_modifier">only</a><!-- wiki: "only"{link: [Perl 6 Index Tablet]only routine modifier} --></span> . . . . . routines which dont' allow to have an multi sibling (is default, you may leave it out)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#proto_routine_modifier">proto</a><!-- wiki: "proto"{link: [Perl 6 Index Tablet]proto routine modifier} --></span>. . . . . fallback for multi, if no multi signature matches the caller, a proto with same name is executed</blockquote>
<br /><h4 id="routine_traits">Routine Traits</h4>
<p>
<span class="nlw_phrase"><a title="section link" href="#closure_traits">phasers</a><!-- wiki: "phasers"{link: Closure Traits} --></span> (closure traits) can also be seen as routine traits</p>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#export_routine_trait">export</a><!-- wiki: "export"{link: [Perl 6 Index Tablet]export routine trait} --></span> . . . . this routine will be exported my the current module by default<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#will_do_routine_trait">will do</a><!-- wiki: "will do"{link: [Perl 6 Index Tablet]will do routine trait} --></span> . . . . block of code executed when the subroutine is called. Normally declared implicitly, by providing a block after the subroutine's signature definition<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#signature_routine_trait">signature</a><!-- wiki: "signature"{link: [Perl 6 Index Tablet]signature routine trait} --></span>. . . signature of a subroutine. Normally declared implicitly, by providing a parameter list and/or return type<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#as_routine_trait">as</a><!-- wiki: "as"{link: [Perl 6 Index Tablet]as routine trait} --></span> . . . . . . . inner type constraint that a routine imposes on its return value<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#of_routine_trait">of</a><!-- wiki: "of"{link: [Perl 6 Index Tablet]of routine trait} --></span> . . . . . . . official return type of the routine<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#cached_routine_trait">cached</a><!-- wiki: "cached"{link: [Perl 6 Index Tablet]cached routine trait} --></span> . . . . marks a subroutine as being memoized<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#rw_routine_trait">rw</a><!-- wiki: "rw"{link: [Perl 6 Index Tablet]rw routine trait} --></span> . . . . . . . marks a subroutine as returning an lvalue <br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#parsed_routine_trait">parsed</a><!-- wiki: "parsed"{link: [Perl 6 Index Tablet]parsed routine trait} --></span>. . . . . macro is parsed once, is hygienic, only parsed can be used<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#reparsed_routine_trait">reparsed</a><!-- wiki: "reparsed"{link: [Perl 6 Index Tablet]reparsed routine trait} --></span> . . . macro parsed twice, not hygienic, later parsed can be used<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#tighter_routine_trait">tighter</a><!-- wiki: "tighter"{link: [Perl 6 Index Tablet]tighter routine trait} --></span>. . . . . specifies the precedence of an operator higher than an existing operator <span class="nlw_phrase"><a title="section link" href="#table_of_precedence">as seen here</a><!-- wiki: "as seen here"{link: table_of_precedence} --></span><br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#looser_routine_trait">looser</a><!-- wiki: "looser"{link: [Perl 6 Index Tablet]looser routine trait} --></span> . . . . . specifies the precedence of an operator lower than an existing operator <span class="nlw_phrase"><a title="section link" href="#table_of_precedence">as seen here</a><!-- wiki: "as seen here"{link: table_of_precedence} --></span><br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#equiv_routine_trait">equiv</a><!-- wiki: "equiv"{link: [Perl 6 Index Tablet]equiv routine trait} --></span> . . . . . specifies the precedence of an operator same as an existing operator <span class="nlw_phrase"><a title="section link" href="#table_of_precedence">as seen here</a><!-- wiki: "as seen here"{link: table_of_precedence} --></span><br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#assoc_routine_trait">assoc</a><!-- wiki: "assoc"{link: [Perl 6 Index Tablet]assoc routine trait} --></span> . . . . . specifies the associativity of an operator explicitly <span class="nlw_phrase"><a title="section link" href="#operator_associativity">as seen here</a><!-- wiki: "as seen here"{link: Operator Associativity} --></span></blockquote>
<br /><h4 id="parameter_traits">Parameter Traits</h4>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#as_parameter_trait">as</a><!-- wiki: "as"{link: [Perl 6 Index Tablet]as parameter trait} --></span> . . . . . . . data coming through that parameter will be coerced to the type following <strong>as</strong><br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#readonly_parameter_trait">readonly</a><!-- wiki: "readonly"{link: [Perl 6 Index Tablet]readonly parameter trait} --></span> . . . immutable parameter<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#rw_parameter_trait">rw</a><!-- wiki: "rw"{link: [Perl 6 Index Tablet]rw parameter trait} --></span> . . . . . . . mutable parameter (rw stands for: read write)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#copy_parameter_trait">copy</a><!-- wiki: "copy"{link: [Perl 6 Index Tablet]copy parameter trait} --></span>. . . . . . read-writable copy of the original argument (&quot;pass-by-value&quot;)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#dynamic_parameter_trait">dynamic</a><!-- wiki: "dynamic"{link: [Perl 6 Index Tablet]dynamic parameter trait} --></span> . . . parameter is an &quot;environmental&quot; variable, a lexical in the dynamic scope <br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#parcel_parameter_trait">parcel</a><!-- wiki: "parcel"{link: [Perl 6 Index Tablet]parcel parameter trait} --></span>. . . . . raw reference, will not be contextualized</blockquote>
<br /><h4 id="signature_symbols">Signature Symbols</h4>
<p>
In routine and block definitions can be also some character with special meaning</p>
<blockquote>
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#exclamation_mark_signature">!</a><!-- wiki: "!"{link: [Perl 6 Index Tablet]exclamation mark signature} --></span> . . . . . suffix of required parameter (default when named, not positional)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#asterisk_signature">*</a><!-- wiki: "*"{link: [Perl 6 Index Tablet]asterisk signature} --></span> . . . . . prefix of slurpy arrays<br />
--&gt;. . . . <span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#minus_minus_greater_signature">prefix of return type</a><!-- wiki: "prefix of return type"{link: [Perl 6 Index Tablet]minus minus greater signature} --></span> (couldn't link the arrow due wiki syntax)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#minus_greater_signature">-&gt;</a><!-- wiki: "->"{link: [Perl 6 Index Tablet]minus greater signature} --></span> . . . . prefix of named readonly parameters for a block (pointy block syntax)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#colon_signature">:</a><!-- wiki: ":"{link: [Perl 6 Index Tablet]colon signature} --></span> . . . . . prefix of named parameter, positional when without<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#colon_colon_signature">::</a><!-- wiki: "::"{link: [Perl 6 Index Tablet]colon colon signature} --></span>. . . . . prefix of a variable type introduced in a signature<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#lower_minus_greater_signature">&lt;-&gt;</a><!-- wiki: "<->"{link: [Perl 6 Index Tablet]lower minus greater signature} --></span> . . . prefix of named writeable parameters for a block (double pointy block syntax)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#question_mark_signature">?</a><!-- wiki: "?"{link: [Perl 6 Index Tablet]question mark signature} --></span> . . . . . suffix of optional parameter (default when positional, not named)<br />
<span class="nlw_phrase"><a title="section link" href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet#caret_signature">^</a><!-- wiki: "^"{link: [Perl 6 Index Tablet]caret signature} --></span>. . . . . prefix of metaclass methods, <em>$obj.^methods();</em> is shortcut for <em><span class="nlw_phrase"><a title="section link" href="#object_introspection">$obj.HOW.methods($obj);</a><!-- wiki: "$obj.HOW.methods($obj);"{link: Object Introspection} --></span></em></blockquote>
<br /><h4 id="callframe_methods">Callframe Methods</h4>
<blockquote>
args . . . . .<br />
callframe. . <br />
caller . . . . <br />
file. . . . . . <br />
hints. . . . . <br />
inline . . . . <br />
leave . . . . <br />
line. . . . . . <br />
my . . . . . . <br />
package. . .</blockquote>
<br /><hr />
<p>
<a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_intro_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">Intro<!-- wiki-renamed-link Perl 6 Intro Tablet --></a> - <em>Chapter:</em> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_history_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">0:History<!-- wiki-renamed-link Perl 6 History Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_language_design_tablet" title="(7 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">1:Design<!-- wiki-renamed-link Perl 6 Language Design Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_basics_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">2:Basics<!-- wiki-renamed-link Perl 6 Basics Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_variable_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">3:Var<!-- wiki-renamed-link Perl 6 Variable Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_operator_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">4:Op<!-- wiki-renamed-link Perl 6 Operator Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_io_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">5:IO<!-- wiki-renamed-link Perl 6 IO Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_block_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">6:Block<!-- wiki-renamed-link Perl 6 Block Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_subroutine_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">7:Sub<!-- wiki-renamed-link Perl 6 Subroutine Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_oop_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">8:OOP<!-- wiki-renamed-link Perl 6 OOP Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_regex_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">9:Rx<!-- wiki-renamed-link Perl 6 Regex Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_meta_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">10:Meta<!-- wiki-renamed-link Perl 6 Meta Tablet --></a><br />
<a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_tablets" title="(13 months) These are the Perl 6 Tablets, a comprehensive manual, aimed to support many different ways of learni...">Overview<!-- wiki-renamed-link Perl 6 Tablets --></a> - <em>Appendix:</em> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_index_tablet" title="(13 months)  section Index Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [...">A:Index<!-- wiki-renamed-link Perl 6 Index Tablet --></a> <strong><a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_lookup_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">B:Tables<!-- wiki-renamed-link Perl 6 Lookup Tablet --></a></strong> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_cookbook_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">C:Cook<!-- wiki-renamed-link Perl 6 Cookbook Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_delta_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">D:Delta<!-- wiki-renamed-link Perl 6 Delta Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?best_of_perl_6_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">E:Best of<!-- wiki-renamed-link Best Of Perl 6 Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_links_tablet" title="(13 months)  Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [Perl 6 Languag...">F:Links<!-- wiki-renamed-link Perl 6 Links Tablet --></a> <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_glossary_tablet" title="(13 months)  section Index Intro [Perl 6 Intro Tablet] - _Chapter _ 0 History [Perl 6 History Tablet] 1 Design [...">G:Glossary<!-- wiki-renamed-link Perl 6 Glossary Tablet --></a></p>
<hr />
</div>
]]></description>
<author>Herbert Breunung</author>
<guid isPermaLink="true">http://www.perlfoundation.org/perl6/index.cgi?perl_6_lookup_tablet</guid>
<pubDate>Tue, 17 Apr 2012 00:57:13 -0000</pubDate>
</item>

</channel>
</rss>