在读取文本文件时替换变量

时间:2014-08-05 17:53:17

标签: perl perl-module perl-data-structures

我有一个如下文字文件并保存为" 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中实现这一目标?

1 个答案:

答案 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"