NAME

Perl6::Overview::Smartmatch - Smart Matching

DESCRIPTION

Smartmatch chart from S04

$_      $x        Type of Match Implied    Matching Code
======  =====     =====================    =============
Any     Code<$>   scalar sub truth         match if $x($_)
Hash    Hash      hash keys identical      match if $_.keys.sort »eq« $x.keys.sort
Hash    any(Hash) hash key intersection    match if $_{any(Hash.keys)}
Hash    Array     hash value slice truth   match if $_{any(@$x)}
Hash    any(list) hash key slice existence match if exists $_{any(list)}
Hash    all(list) hash key slice existence match if exists $_{all(list)}
Hash    Rule      hash key grep            match if any($_.keys) ~~ /$x/
Hash    Any       hash entry existence     match if exists $_{$x}
Hash    .{Any}    hash element truth*      match if $_{Any}
Hash    .<string> hash element truth*      match if $_<string>
Array   Array     arrays are identical     match if $_ »~~« $x
Array   any(list) list intersection        match if any(@$_) ~~ any(list)
Array   Rule      array grep               match if any(@$_) ~~ /$x/
Array   Num       array contains number    match if any($_) == $x
Array   Str       array contains string    match if any($_) eq $x
Array   .[number] array element truth*     match if $_[number]
Num     NumRange  in numeric range         match if $min <= $_ <= $max
Str     StrRange  in string range          match if $min le $_ le $max
Any     Code<>    simple closure truth*    match if $x() (ignoring $_)
Any     Class     class membership         match if $_.does($x)
Any     Role      role playing             match if $_.does($x)
Any     Num       numeric equality         match if $_ == $x
Any     Str       string equality          match if $_ eq $x
Any     .method   method truth*            match if $_.method
Any     Rule      pattern match            match if $_ ~~ /$x/
Any     subst     substitution match*      match if $_ ~~ subst
Any     boolean   simple expression truth* match if true given $_
Any     undef     undefined                match unless defined $_
Any     Any       run-time dispatch        match if infix:<~~>($_, $x)

1 POD Error

The following errors were encountered while parsing the POD:

Around line 12:

Non-ASCII character seen before =encoding in '»eq«'. Assuming UTF-8