%typemap(in) (unsigned char *string1) { $1 = (unsigned char *)SvPV_nolen($input); } #### %typemap(out) (unsigned char *output, const size_t output_length) { $result = newSVpv((char *)$1, $2); sv_2mortal($result); argvi++; delete $1; }