Operator in a variable

Answer

my $result = eval "\$x $op \$y";
However, that leads to security issues, and hard to find bugs.
my %ops = (
   '+' => sub {return $_[0] + $_[1]},
   '-' => sub {return $_[0] - $_[1]},
);

my $result = $ops{$op}->($x, $y);

Ted Zlatanov's eval() answer
Sam Holden's coderef answer

Next