Untested idea: when you want the value of a function all by itself (you're not using it as part of a larger query), SELECT the value of the function from the special table DUAL and use the ol' INTO keyword:
my $sth = $db->prepare(q{
SELECT my_function(:p1, :p2, :p3, :p4) INTO :p5 FROM dual
});
# bind other params
$sth->bind_param_inout(":p5", \$return_value, 252);
HTGYSI (hope this gives you some ideas =)
perl -e 'print "How sweet does a rose smell? "; chomp ($n = <STDIN>);
+$rose = "smells sweet to degree $n"; *other_name = *rose; print "$oth
+er_name\n"'