The argument values supplied to a PL/Perl function's code are simply the input arguments converted to text form (just as if they had been displayed by a
SELECT statement). Conversely, the
return_next commands will accept any string that is acceptable input format for the function's declared return type.
If this behavior is inconvenient for a particular case, it can be improved by using a transform, as already illustrated for
bool values. Several examples of transform modules are included in the PostgreSQL distribution.