Tôi cần phải gọi một thói quen perl trong chương trình C của tôi. Các thói quen perl có các đối số sau đây: $a, $b, $c
, trong đó $a
và $b
là số nguyên, $c
là một chuỗi (có thể chứa các ký tự nhị phân). Theo số perlcall, đây là phương tiện thực hiện cuộc gọi.Gọi một thói quen perl với các thông số
I32 call_sv(SV* sv, I32 flags);
I32 call_pv(char *subname, I32 flags);
I32 call_method(char *methname, I32 flags);
I32 call_argv(char *subname, I32 flags, char **argv);
Có vẻ rằng tôi chỉ có thể sử dụng call_argv (...), nhưng có hai câu hỏi
- làm thế nào để tôi vượt qua một số nguyên với perl thói quen
- làm thế nào để vượt qua một (nhị phân) chuỗi để perl?
Wish có một chức năng như
I32 call_argv(char *subname, I32 flags, int numOfArgs, SV* a, SV* b, SV *c ...);
perlcall có phần có gắn nhãn "Tham số truyền" vì một lý do. Bạn làm điều đó bằng cách đặt các mục vào ngăn xếp Perl. – hobbs