%{ #include "SSL_keyid.h" %} %include "SSL_keyid.h" %typemap(argout) bool &success { --argvi; SV *array = $result; $result = sv_newmortal(); sv_setiv($result, *$1); ++argvi; $result = array; ++argvi; } %typemap(in,numinputs=0) bool &success(bool temp) { $1 = &temp; } // abac_chunk_t is a string %typemap(in) abac_chunk_t { STRLEN len; $1.ptr = (unsigned char *)SvPV($input, len); $1.len = len; } %typemap(out) abac_chunk_t { $result = newSVpvn( (const char *)$1.ptr, $1.len ); ++argvi; }