Skip to main content
 首页 » 编程设计

python之如何将环境从我的 Python Web 应用程序传递到 Perl 程序

2025年05月04日67xiaohuochai

如何设置 Perl 的 %ENV 以将 Perl 脚本引入我的 Web 应用程序的上下文中?

我有一个网站,是用不同于 Perl (Python) 的语言编写的。但是我需要使用一个 Perl 应用程序,它包含一个 .pl 文件:

    #!/usr/bin/env perl 
    "$ENV{DOCUMENT_ROOT}/foo/bar.pm" =~ /^(.+)$/; 
    require $1; 
    my $BAR = new BAR( 
        user    => 'foo', 
    ); 
    print $bar->get_content; 

...和一个模块 bar.pm,它依赖于 "$ENV{HTTP_HOST}","$ENV{REQUEST_URI}", “$ENV{REMOTE_ADDR}” 和 “$ENV{DOCUMENT_ROOT}”。

我应该如何设置这个哈希值?这是我第一次使用 Perl,所以我可能在这里遗漏了一些非常明显的东西:)

请您参考如下方法:

如果您从 Python 代码中生成 Perl 进程(而不是“直接从网络服务器”),有几种方法可以从 Python 父进程环境中设置子进程环境,具体取决于您使用的是什么用于“产卵”。

例如,如果您正在使用 subprocess.Popen,您可以将 env= 参数设置为您想要的字典,如 docs解释:

If env is not None, it must be a mapping that defines the environment variables for the new process; these are used instead of inheriting the current process’ environment, which is the default behavior.