Perl预处理器附加到其他变量

时间:2015-07-08 23:06:54

标签: perl preprocessor

我正在尝试编写以下代码,其中我希望$ varPRE1为$ var1,$ varPRE2在评估预处理器后为$ var2,但它无效。有工作吗?

#define PRE1 1
#define PRE2 2

my $var1 = 10;
my $var2 = 20;

print $varPRE1;
print $varPRE2;

1 个答案:

答案 0 :(得分:2)

你写的内容即使对于C预处理器也没有意义,因为varPRE1会被解析为一个令牌。

您想要做的是使用所谓的符号引用,但它是a bad idea

$PRE1 = '1';
$PRE2 = '2';
$var1 = 10;
$var2 = 20;
print ${'var' . $PRE1};   #   same as print $var1 => 10
print ${'var' . $PRE2};

这在use strict refs下不起作用。不use strict refs也是一个坏主意。