AWL metatypes list (main)

[ Any | Array | Block | Bool | Class | Float | Func | Hash | Int | List | Mutable | Num | Object | Pattern | Range | Scalar | Sign | Stream | String | Term | Virtual ]

Any

Any type allowed
No constraints implied.

Array

Array value.
Anything evaluating to array.
(Reports error, if argument is not array.)

Block

Block value.
Anything evaluating to block expression.

Bool

Boolean value.
Anything treated as boolean condition.
As argument: 0, "" and undef as false; or anything other as true.
As result: exactly 0 (as false) or 1 (as true).

Class

Class reference.
Subset of Func: anything evaluating to class reference.

Float

Float value.
Anything evaluating to float. As argument, any scalar value allowed (implicitly coerced to float).

Func

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

Hash

Hash value.
Anything evaluating to hash.
(Reports error, if argument is not hash.)

Int

Integer value.
Anything evaluating to integer. As argument, any scalar value allowed (implicitly coerced to integer).

List

List value.
Anything evaluating to list (allows all atomic values and undef, as trivial lists).

Mutable

Mutable value.
Anything evaluating to mutable.
(Reports error, if argument is immutable.)

Num

Numeric value.
Anything evaluating to integer or float. As argument, any scalar value allowed (implicitly coerced to number).

Object

Object value.
Anything evaluating to instance of arbitrary class.
(Reports error, if argument is not class instance.)

Pattern

Pattern value.
Anything evaluating to pattern.
(Allows string, which is implicitly converted to string pattern.)
(Reports error, if argument is not pattern.)

Range

Integer range.
Range of integers, confined in boundary list (Start, End),
Range includes values, for which Start <= value && value < End (or empty, if Start >= End).
If single scalar value N is supplied, range 0..N is assumed.

Scalar

Scalar value.
Anything evaluating to scalar (number or string) value.

Sign

Sign value.
Anything treated as result of comparison.
As argument: any scalar value allowed (implicitly coerced to number, then compared with 0).
As result: exactly -1 (negative/less than), 1 (positive/greater than), or 0 (zero/equal).

Stream

Stream reference.
Anything evaluating to input/output stream reference.

String

String value.
Anything evaluating to string. As argument, any scalar value allowed (implicitly coerced to string).

Term

Term value.
Anything evaluating to term expression.

Virtual

Virtual reference.
Subset of Func: anything evaluating to virtual reference.

Total: 21 [meta]type(s).

[ Functors list ]