Metatypes list


Int


Any integer value.
As argument, any scalar value (which is implicitly coerced to integer).
 

Float


Any floating point value.
As argument, any scalar value (which is implicitly coerced to float).
 

Num


Any numeric (integer or float) value.
As argument, any scalar value (which is implicitly coerced to numeric).
 

Str


Any string value.
As argument, any scalar value (which is implicitly coerced to string).
 

Bool


Boolean value: either true or false.
As argument: 0, "" and undef treated as false; anything different treated as true.
As result: either 0 (false) or 1 (true).
 

Sign


Sign: negative, positive or zero.
As argument: any scalar value is coerced to numeric and compared with 0.
As result: exactly -1 (negative), 0 (zero) or 1 (positive).
 

Scal


Value of arbitrary scalar type.
 

List


Anything evaluating to list (including scalars and undef as trivial lists).
 

Term


Anything evaluating to term expression.
 

Block


Anything evaluating to block expression.
 

Range


Range: specifies integer range.
Normally, list (Start, End) is supplied,
where Start is range low boundary (inclusive), End is range high boundary (exclusive).
(Range is empty, if Start >= End).
If scalar value N is supplied, range 0..N is assumed.
 

Mut


Anything evaluating to mutable.
Error reported, if argument is immutable.
 

Array


Anything evaluating to array.
Error reported, if argument is not array.
 

Hash


Anything evaluating to hash.
Error reported, if argument is not hash.
 

Object


Anything evaluating to object (of arbitrary class).
Error reported, if argument is not object.
 

Func


Anything evaluating to functor reference (including builtins, user functors, classes and virtuals).
 

Pattern


Expression evaluating to pattern.
 

Class


Anything evaluating to class reference (subset of Func).
 

Virtual


Anything evaluating to virtual reference (subset of Func).
 

Any


Any type without constrains.