my %ops = ( '==' => sub { $_[0] == $_[1] }, '<' => sub { $_[0] < $_[1] }, ); ... if (...) { $op = '=='; } else { $op = '<'; } ... if ($ops{$op}->($num1, $num2)) { print("$num1 $op $num2\n"; } else { print("$num1 not $op $num2\n"; }