我有一个Perl脚本,我从一个包含变量名的配置文件中读取一行。当我将该行读入变量时,不会放入需要用给定值替换的变量名。我使用Config::Tiny来访问我的配置文件。例如:
thing=I want to $this
$this = "run";
my $thing = $Config->{thing};
print $thing;
print $thing
以I want to $this
的形式出现。我希望它以I want to run
形式出现。
答案 0 :(得分:9)
好的,所以你希望Perl评估你的字符串而不是打印它。
本Perl FAQ中实际涵盖了这一点: How can I expand variables in text strings?
简而言之,您可以使用以下正则表达式:
$string =~ s/(\$\w+)/$1/eeg;
小心:从脚本外部评估任意字符串是一个主要的安全风险。一个优秀的黑客可以利用它来在您的服务器上执行任意代码。
Brian的FAQ回答涵盖了其中一些内容。
答案 1 :(得分:3)