use strict; use warnings; my %hash = (a => 1, b => 0, c => 3); while (){ chomp; s/(\w+)/\$hash{$1}/g; my $ans = eval "$_"; if ($@) { print "Eval of $_ failed:\n $@\n"; } else { print "$_ = $ans\n"; } } __DATA__ a/b b+c c*a/(b+a)