The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
TYPEMAP
varspec_t	T_VARSPEC
vartype_t	T_VARTYPE

INPUT
T_VARSPEC
    if (SvPOK($arg))
        _deconstruct_variable_name($arg, &$var);
    else if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV)
        _deconstruct_variable_hash((HV*)SvRV($arg), &$var);
    else
        croak(\"varspec must be a string or a hashref\");
    _check_varspec_is_valid(&$var);

T_VARTYPE
    if (!SvPOK($arg))
        croak(\"vartype must be a string\");
    $var = string_to_vartype(SvPV_nolen($arg));