问题描述
可能的重复:
如何使用变量作为Perl 中的变量名?
这可行吗?我需要将字符串更改为变量.
Is this doable? I need to change a string into variable.
示例:
如果我有一个这样的变量:
If I have a variable like this:
$this_is_test = "what ever";
$default = "this";
$default = $default . "_is_test";
我希望 $default
取 $this_is_test
的值.
I want $default
to take the value of $this_is_test
.
推荐答案
沿着 我的另一个答案,每当您发现自己向变量名添加字符串后缀时,请改用哈希:
Along the lines of my other answer, whenever you find yourself adding string suffixes to a variable name, use a hash instead:
my %this = (
is_test => "whatever",
is_real => "whereever",
);
my $default = $this{is_test};
print "$default
";
不要不要为此目的使用符号引用,因为它们在您的问题的上下文中是不必要的并且可能非常有害.有关详细信息,请参阅 为什么将变量用作变量名"很愚蠢?、第 2 部分 和 第 3 部分 作者 mjd.
Do NOT use symbolic references for this purpose because they are unnecessary and likely very harmful in the context of your question. For more information, see Why it's stupid to 'use a variable as a variable name'?, part 2 and part 3 by mjd.
这篇关于在 Perl 中,如何使用字符串作为变量名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!