【问题标题】:Passing environment variables from perl to tcl将环境变量从 perl 传递到 tcl
【发布时间】:2018-12-15 13:33:59
【问题描述】:

我是 Perl 和 Tcl 的新手。我正在尝试将变量从 Perl 脚本传递给 Tcl 脚本。我将变量声明为环境变量并试图通过。但没有结果。请在下面找到代码:

Perl 方面:

 $ENV{'output_directory_final'} = "./$Image_name/$Date_release/final";

Tcl 端:

 set out_path ${output_directory_final};

但是,这不起作用。任何人都可以提供任何其他想法吗?

【问题讨论】:

  • 如何调用 Tcl?它是从 Perl 代码中运行的吗?您需要创建一个 minimal reproducible example 来演示该问题,其他人可以在本地获取并运行该问题。
  • 为什么需要传递一个“全局”变量?
  • 您希望output_directory_finaloutput_directory_init 匹配吗?它们显然不同……
  • @JimGarrison 我正在启动一项工作并调整 tcl 脚本。因此,我无法给出整个代码。但是,这是一个问题,我提出了有问题的代码。
  • @RedCricket 我改了标题。抱歉打错了!

标签: perl unix tcl


【解决方案1】:

通过特殊安排,Tcl 中的全局数组env 包含进程的环境变量值。在您的情况下,请尝试以下操作:

set out_path $env(output_directory_final)

请注意,如果您在 proc 中,则需要使用 global env 命令来获得对变量的本地访问。

【讨论】:

  • 或者,指定全局命名空间:$::env(...)
  • 完全正确。我只是在避免一个自称新手的namespace 概念。
猜你喜欢
  • 1970-01-01
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-12
  • 1970-01-01
  • 2013-12-29
相关资源
最近更新 更多