foo * routine(a, b, c=NULL) char *a; int b; bar_t * c; CODE: RETVAL = croutine( a, b, (c && SvOK(ST(2)) ) ? c : cdefault ); OUTPUT: RETVAL