gpt4 book ai didi

perl - 'echo' 在 perl 变量声明中做什么?

转载 作者:行者123 更新时间:2023-12-05 08:20:56 25 4
gpt4 key购买 nike

我正在努力将一个过时的文件从 perl 转录到 python,并且遇到了一些 perl 语法。

my $jobID = `echo \$JOBID`;
chomp($jobID);
unless ($jobID) {
print "Please specify a job\n";
exit;
}

到目前为止,我已经能够非常轻松地转录所有命令行解析,但我非常清楚这段代码到底在做什么(特别是在线声明中的 echo 1).

在 perl 脚本 cmd 行解析选项中 - 允许设置 jobID - 它声明“默认 = $JOBID”。所以我的假设是这段代码的第一行只是设置这个默认的 jobID,直到指定了一个。

如果是这种情况,为什么需要在变量默认声明中使用 echo?这是 perl 中的良好做法还是我错过了更大的画面?

我已尝试为此进行低级和高级搜索,但似乎无法通过 google ninja 找到任何有用的东西。

如果您对“回声”有任何帮助,我们将不胜感激(或对此有任何好的阅读)!

最佳答案

这是从 shell 变量获取值的一种方法。反引号 (`) 运行 shell 命令并为您提供输出。所以 echo 在 shell 内部运行,在这种情况下它只返回一个 shell 变量。在 Perl 中获得它的更简洁的方法是像这样使用 %ENV:

 my $jobID = $ENV{'JOBID'};

这也消除了对 chomp 的需要,避免创建额外的进程,并且效率更高。

关于perl - 'echo' 在 perl 变量声明中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32467976/

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