Perl 读取文本文件时替换变量
我有一个文本文件,如下所示,并将其保存为file.txtPerl 读取文本文件时替换变量,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");
"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"