I have a text file as below and saved it as "file.txt"
"create variable $VAR alarm_object 0"
I am trying to read this in a perl script and printing it by substituting the "$VAR" variable
$VAR = TEMP_VAR
open (FILE,"<", "file.txt") or die $!;
while (<FILE>) {
chomp;
eval(print "$_\n");
}
close (FILE);
I need the output as
"create variable TEMP_VAR alarm_object 0"
I tried to achieve this using eval function. It is not working as expected.
How can i achieve this in perl?
eval
is too heavy of a tool for this job. Instead, just use a simple search and replace.
This basically substitutes '$VAR'
with $sub
for every line of your input file:
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
}
Outputs:
"create variable $VAR alarm_object 0"
"create variable TEMP_VAR alarm_object 0"