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