我有一个如下文字文件并保存为" file.txt"
"create variable $VAR alarm_object 0"
我试图在perl脚本中读取它并通过替换" $ VAR"来打印它。变量
$VAR = TEMP_VAR
open (FILE,"<", "file.txt") or die $!;
while (<FILE>) {
chomp;
eval(print "$_\n");
}
close (FILE);
我需要输出
"create variable TEMP_VAR alarm_object 0"
我尝试使用eval函数实现此目的。它没有按预期工作。
我如何在perl中实现这一目标?
答案 0 :(得分:2)
eval
对于这项工作来说太沉重了。相反,只需使用简单的搜索和替换。
这基本上用'$VAR'
代替$sub
输入文件的每一行:
use strict;
use warnings;
use autodie;
my $sub = 'TEMP_VAR';
open my $fh, '<', 'file.txt';
while (<$fh>){
print; # Before
s/\$VAR\b/$sub/g;
print; # After
}
输出:
"create variable $VAR alarm_object 0"
"create variable TEMP_VAR alarm_object 0"