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

Perl 读取文本文件时替换变量,perl,perl-module,perl-data-structures,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");

我有一个文本文件,如下所示,并将其保存为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);
我尝试使用eval函数来实现这一点。它没有按预期工作

如何在perl中实现这一点?

对于这项工作来说,工具太重了。相反,只需使用简单的搜索和替换

这基本上将输入文件的每一行的“$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
}

也不是while循环,因为它只是一行。但这种方法是一种更安全、更具可扩展性的方法,不是吗?它的工作原理如上所述。文件包含这样的美元变量的数量,所以while循环是必需的。对的
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"