如何在执行前检查脚本中使用的perl环境变量?

发布于 2024-12-21 01:42:39 字数 224 浏览 0 评论 0 原文

如何知道脚本中使用的环境与程序运行时看到的环境相同? 据我所知,Perl 将环境存储在 %ENV 中。

我正在尝试使用下面提到的代码来了解变量。

    require Data::Dumper;
    print STDERR Data::Dumper::Dumper( \%ENV );

在脚本开始执行之前是否有任何程序来检查使用的环境变量?

How to know that the environment used in the script is the same that the program will see when it runs?.
Perl stores the environment in %ENV to my knowledge.

i am trying to use the code which is mentioned below in order to know the variables.

    require Data::Dumper;
    print STDERR Data::Dumper::Dumper( \%ENV );

Is there any procudure to check the env variables used before the script starts executing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

青巷忧颜 2024-12-28 01:42:39

不确定您要了解什么,但您可以将代码放入 BEGIN 块中,以在加载您使用的任何模块之前查看环境变量是什么。

BEGIN {
    require Data::Dumper;
    print STDERR Data::Dumper::Dumper( \%ENV );
}

Not sure what you're getting at, but you can put your code inside a BEGIN block to see what your environment variables are before any modules you use are loaded.

BEGIN {
    require Data::Dumper;
    print STDERR Data::Dumper::Dumper( \%ENV );
}
对岸观火 2024-12-28 01:42:39

%ENV 的内容会继承到您从 perl 脚本执行的任何进程。

如果您担心子进程从您的环境中读取敏感信息,请在运行它之前给它一个干净的信息:

do {
    local %ENV;
    $ENV{PATH} = '/usr/bin';
    system './another-binary';
};

The contents of %ENV are inherited to any process you execute from a perl script.

If you're concerned that a child process reads sensitive information from your environment, give it a clean one before running it:

do {
    local %ENV;
    $ENV{PATH} = '/usr/bin';
    system './another-binary';
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文