A couple of things.
1.
/^frz\s+=\s+(\w+)\;/ will not match a line starting with
"frz=" as there is a mandatory whitespace after the z in your regular expression (you were probably looking for
\s* so it will match both lines starting with
"frz=" or
"frz =" (you might want to change the other
\s+ to
\s* depending on what the line might look like after the "=".
2. One way to skip the intermediate variable would be:
open (CONFIG_FILE,"$config_file") or die "Can't open $config_file";
my $bar;
while(<CONFIG_FILE>){
next unless /^frz\s*=\s*(\w+)\;/;
$bar = $1;
}
print $bar,$/;
close(CONFIG_FILE) or die;
-enlil