sub evalTree {
my $intree = shift;
my $param = shift;
local $_ = $intree->{contents}; # A shortcut for the current node
return 0 unless defined;
if (/^sub /) {
return eval->(
evalTree($intree->{left},$param),
evalTree($intree->{right},$param)
);
} elsif (/^[x]$/) {
return $param->{$_};
} else {
return $_;
}
}
####
if (/^sub /) {
####
if (left($_(0),3) = "sub ")