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.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.