【问题标题】:interpolating env variables in perl在 perl 中插入 env 变量
【发布时间】:2019-03-15 06:14:40
【问题描述】:

如何在分配给另一个变量之前插入一个环境变量。 例如我正在从具有环境变量的输入文件中读取一行。所以我想分配变量的值。我没有看到 variable 的值。我的代码如下。

open (FH , "<", "$ARGV[0]")
   while ($line = <FH>)
$line2 = $line
}

print $line; ## prints $abc/ver
print $line2; ## prints $abc/ver

value of abc environment is username ;  So I am expecting to have $line2 value as below
print $line2 ; ## Should print username/ver

【问题讨论】:

  • 这在在线手册中有很好的记录。你看%ENV了吗?
  • 不要使用全局变量 (FH);使用词法变量 (my $FH)。
  • 始终使用use strict; use warnings qw( all );

标签: perl environment-variables


【解决方案1】:

以下是最小的解决方案:

$line2 =~ s/\$(\w+)/$ENV{$1}/g;

当然,您可能想要更清楚地处理未定义的变量,并且您可能想要某种转义机制来防止 $ 的特殊含义。

【讨论】:

  • @SwathiVutukuri:如果有效,请接受答案。
猜你喜欢
  • 2020-02-15
  • 2013-02-20
  • 2015-05-19
  • 2019-06-18
  • 1970-01-01
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多