@concat is different in TPT. @concat concatenates a variable list of strings together, with no added spaces. The PML version concatenated values onto an existing symbol.
PML: @concat(id, value)
TPT: @set(id, @concat(id, "value"))
"value" may be either a string or an expression.
The new @concat also replaces prepend and append. Instead use:
PML: @prepend(id, value)
TPT: @set(id, @concat("value", " ", id))
PML: @append(id, value)
TPT: @set(id, @concat(id, " ", "value"))
Why is this different? Most functions in TPT are designed to be usable within the expression processor. Some functions of PML, like concat, prepend, and acted on a symbol, instead of returning a value that could be used by the expression parser.
TPT adds the following new functions for your pleasure.
@lc(expr) - lowercase string or expression @uc(expr) - uppercase string or expression @length(expr) - get number of characters in string or expression