假设我有一个名为param.txt的文件。它包含,
param1 = 5;
param2 = 10;
param3 = 12;
param4 = 5;
param5 = param1 + param2;
param6 = param2 * param1;
param7 = param5 - param2;
param8 = param1 * param2 - param4;
我在perl脚本中读取此文件并将所有参数值存储到散列中的param4。
如何通过读取文件并构建哈希来应用预期的操作来存储param5,param6,param7,param8?
答案 0 :(得分:1)
简单的方法是使用带有perl代码和eval的正则表达式:
use strict;
use warnings;
use v5.10;
use Data::Dumper;
my %ns = ();
while( my $line = <> )
{
chomp($line);
next unless ($line);
my ($term, $expr) = split m/\s*=\s*/, $line;
if( $term && $expr )
{
$expr =~ s/(\w+)/exists $ns{$1} ? $ns{$1}: $1/ge;
$ns{$term} = eval $expr;
warn $@ if $@;
}
}
say Dumper(\%ns);