首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在文本字符串中展开变量?

如何在文本字符串中展开变量?
EN

Stack Overflow用户
提问于 2011-01-19 15:06:54
回答 2查看 8.4K关注 0票数 5

我有一个Perl脚本,其中我从包含变量名的配置文件中读取一行。当我将行读入变量时,需要用给定值替换的变量名不会被输入。我正在使用配置:微型访问我的配置文件。示例:

配置文件

代码语言:javascript
复制
thing=I want to $this

脚本

代码语言:javascript
复制
$this = "run";
my $thing = $Config->{thing};
print $thing;

print $thing的名字是I want to $this。我希望它能以I want to run的形式出现。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-19 15:11:49

好,所以您希望Perl计算您的字符串,而不是打印它。

这实际上在Perl FAQ:如何在文本字符串中展开变量?中进行了介绍。

简而言之,您可以使用以下正则表达式:

代码语言:javascript
复制
$string =~ s/(\$\w+)/$1/eeg;

要小心:从脚本外部计算任意字符串的是一个主要的安全风险。好的黑客可以利用这一点在您的服务器上执行任意代码。

布赖恩的常见问题解答涵盖了其中的一些。

票数 9
EN

Stack Overflow用户

发布于 2011-01-19 15:11:22

使用eval

代码语言:javascript
复制
print eval $thing;

对于包变量,也可以使用符号引用

代码语言:javascript
复制
$thing =~ s/\$(\w+)/$$1/;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4736844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档