gpt4 book ai didi

c - dummy_argv 的第一个元素对 perl_parse 意味着什么?

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:49 25 4
gpt4 key购买 nike

引自here :

static PerlInterpreter *my_perl;

main (int argc, char **argv, char **env)
{
STRLEN n_a;
char *dummy_argv[] = { "", "-e", "0" };

my_perl = perl_alloc();
perl_construct( my_perl );

perl_parse(my_perl, NULL, 3, dummy_argv, NULL);
perl_run(my_perl);

/** Treat $a as an integer **/
eval_pv("$a = 3; $a **= 2", TRUE);
printf("a = %d\n", SvIV(get_sv("a", FALSE)));

/** Treat $a as a float **/
eval_pv("$a = 3.14; $a **= 2", TRUE);
printf("a = %f\n", SvNV(get_sv("a", FALSE)));

/** Treat $a as a string **/
eval_pv("$a = 'relreP kcaH rehtonA tsuJ'; $a = reverse($a);", TRUE);
printf("a = %s\n", SvPV(get_sv("a", FALSE), n_a));

perl_destruct(my_perl);
perl_free(my_perl);

dummy_argv 的第一个元素(此处 "")对 perl_parse 意味着什么?

我试着把它修改成我想要的任何东西,但没有任何改变..

最佳答案

在 C 中,argv[0] 是正在执行的程序的名称。在大多数情况下,嵌入式 Perl 解释器并不关心您放在那里的内容,这就是为什么您在更改它时不会注意到任何内容。

请记住,Perl 主要是一个独立的解释器;将其嵌入到其他程序中是次要用途。 Perl 的 main() 函数只是将它接收到的相同的 argcargv 传递给 perl_parse,因为这是最简单的.当你在程序中调用 perl_parse 时,你必须为 argv[0] 提供一些东西,但我认为它唯一的用途是设置 $^X。 ,大多数 Perl 代码不使用它。

关于c - dummy_argv 的第一个元素对 perl_parse 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7413664/

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