我是 Perl XS 的新手,我正在尝试将 C 函数转换为 Perl 子例程。
我有以下 C 函数
void parse(struct parser *result, const char *string, size_t len);
其中parse
函数接受指向的指针struct parser
、字符串和字符串的长度。struct parser
定义如下:
struct parser {
char *data;
long a;
long b;
long c;
};
该函数将其结果存储在result
参数中。
我想将此函数转换为 Perl XS。我正在做的是这样的:
struct parser *result
parse_xs (string)
const char* string
PREINIT:
long len = strlen(string);
CODE:
struct parser par;
parse(&par,s,len);
RETVAL = par;
OUTPUT:
RETVAL
如何更改上面的代码以parse_xs
像这样在 Perl 代码中运行
my $result = parse_xs();
print $result->data; # will print the data field from the struct.
其中$result
是parse
C 函数的结果。