The filter |set{name} affects the current value of the variable name. It is sometimes more convenient alternative, to the tag #SET{name,value}.
Thus:
[(#TEXTE|mb_strlen|set{length})]
[(#GET{length}) characters]
is the equivalent to
[(#SET{length,[(#TEXTE|mb_strlen)]})]
[(#GET{length}) characters]
The second argument of the |set{} filter, if not null, indicates to "continue", that is, pass the value in the sequence of filters, or display it if placed at the end of the chain:
[(#TEXTE*|set{plain,1}|propre|set{process,1}|mb_strlen|set{length,1})]
stores the plain text in the variable plain, the text processed in process, the number of characters in length, and eventually displays the value length.
See also |setenv