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

Perl preprocessor appended to other variable

我正在尝试编写以下代码,在评估预处理器后,我希望 $varPRE1 为 $var1,$varPRE2 为 $var2,但它不起作用。有解决办法吗?

#define PRE1 1
#define PRE2 2

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

print $varPRE1;
print $varPRE2;

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

你想做的是有可能的,使用所谓的符号引用,但它是 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.

也是一个坏主意