标签: perl preprocessor
我正在尝试编写以下代码,其中我希望$ varPRE1为$ var1,$ varPRE2在评估预处理器后为$ var2,但它无效。有工作吗?
#define PRE1 1 #define PRE2 2 my $var1 = 10; my $var2 = 20; print $varPRE1; print $varPRE2;
答案 0 :(得分:2)
你写的内容即使对于C预处理器也没有意义,因为varPRE1会被解析为一个令牌。
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也是一个坏主意。
use strict refs