NAME
Text::Xslate::Manual::Builtin - Builtin methods and filters/functions in Xslate
DESCRIPTION
This document describes builtin methods and filters/functions in Xslate.
Note that the xslate engine is not aware of context, so all the methods and filters/functions return a single value, even when the equivalent of Perl's returns a list of values.
METHODS
The xslate engine supports auto-boxing, so you can call methods for primitive (non-object) values. The following is builtin methods.
For nil
nil
has its specific namespace as nil
, although no builtin methods are provided.
For SCALARs
The namespace of SCALARs is scalar
, although no builtin methods are provided.
For ARRAY references
The namespace of ARRAY references is array
.
Returns true;
$a.size()
Returns the number of elements of $a.
$a.join($separator)
Joins the elements of $a into a single string separated by $separator.
$a.reverse()
Returns an ARRAY reference consisting of the elements of $a in the opposite order.
$a.sort(?$callback)
Sorts $a and returns a new ARRAY reference. The optional $callback is the same as Perl's.
Examples:
: my $a = [2, 1, 10];
: # alphabetic sort (default)
: $a.sort().join(" "); # 1 10, 2
: # explicitly alphabetic
: $a.sort(-> $a, $b { $a cmp $b }).join(" "); # 1, 10, 2
: # numeric sort
: $a.sort(-> $a, $b { $a <=> $b }).join(" "); # 1, 2, 10
See also "sort" in perlfunc.
$a.map($callback)
Evaluates $callback for each element of $a and returns a new ARRAY reference composed of the result of each such evaluation.
See also "map" in perlfunc
$a.reduce($callback)
Reduces $a by calling $callback multiple times. If $a is empty, this method returns nil
.
Examples:
: my $a = [10, 20, 30];
: # sum
: $a.reduce(-> $a, $b { $a + $b }); # 60
: # concat
: $a.reduce(-> $a, $b { $a ~ $b }); # 102030
: # min
: $a.reduce(-> $a, $b { $a min $b }); # 10
: # max
: $a.reduce(-> $a, $b { $a max $b }); # 30
See also "reduce" in List::Util.
For HASH references
The namespace of HASH references is hash
.
$h.size()
Returns the number of entries of $h.
$h.keys()
Returns an ARRAY reference consisting of the keys of $h, which are sorted by the keys.
$h.values()
Returns an ARRAY reference consisting of the values of $h, which are sorted by the keys.
$h.kv()
Returns an ARRAY reference consisting of the key-value pairs of $h, which are sorted by the keys. Each pair is an object that has the keys
and value
attributes.
For example:
: for $hash_ref.kv() -> $pair {
<: $pair.key :>=<: $pair.value :>
: }
FILTERS/FUNCTIONS
The xslate engine supports filter syntax as well as function call. The following is the builtin functions, which can be invoked as filter syntax. =head2 mark_raw($str)
Mark $str as a raw string to avoid auto HTML escaping.
raw
is an alias to mark_raw
.
unmark_raw($str)
Remove the raw mark from str. If str is not a raw string, this function returns str as is.
html($str)
Escapes html meta characters in str. If str is a raw string, this function returns str as is.
The html meta characters are /[<>"'&]/
.
uri($str)
Escapes unsafe URI characters in $str.
The unsafe URI characters are characters not included in the unreserved
character class defined by RFC 3986, i.e. /[^A-Za-z0-9\-\._~]/
.
See also RFC 3986.
is_array_ref(($value)
Returns true if $value is an ARRAY reference.
is_hash_ref(($value)
Returns true if $value is a HASH reference.
dump($value)
Inspects $value with Data::Dumper
.
This function is provided for testing and debugging.