gpt4 book ai didi

perl - 需要将 Perl 解包转换为 Inline::C AV*

转载 作者:行者123 更新时间:2023-12-01 11:54:00 27 4
gpt4 key购买 nike

我正在努力将 Perl unpack 转换为 Inline::C

@array = unpack("C*", $buf);

这是我目前所拥有的,但我是一名 Inline::C 新手,所以我不知道下一步该怎么做:

STRLEN len;
char* test = SvPVbyte(buf, len);
...
AV* arr = SvRV(?);

任何人都可以提供有关如何执行此操作的提示吗?

最佳答案

这里聪明的做法可能是避免调用 unpack,并执行 unpack 会执行的操作,这样更简单。

STRLEN len;
char *str = SvPVbyte(buf, len);
AV *arr = newAV();
char *ptr;

for (ptr = str; ptr < str + len ; ptr++) {
SV *char_value = newSViv(*ptr);
av_push(arr, char_value);
}

或者,当然,如果您不需要它,只需编写循环并省略数组 :)

关于perl - 需要将 Perl 解包转换为 Inline::C AV*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8828664/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com