我正在尝试替换源文件中的文本,就像C预处理器的工作方式一样.我的方法是解析常量及其值,并用它们填充哈希数组.我的问题如下:
在源文件中,我有:
#define CONSTANT 10
#define CONSTANT_PLUS_ONE CONSTANT + 1
Run Code Online (Sandbox Code Playgroud)
我/^#define\s+(\w.*)\s+.*($key).*/用来匹配第二行,但当我替换时s/$2/$defines{$key}/,两个CONSTANT实例都被替换,即
#define CONSTANT 10
#define 10_PLUS_ONE 10 + 1
Run Code Online (Sandbox Code Playgroud)
我是一个Perl新手,所以我希望有人可以指出我正确的方向,或者如果我犯了一个明显愚蠢的错误.