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
and 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.