my %perlop = ( lte => sub { $_[0] <= $_[1] }, gte => sub { $_[0] >= $_[1] }, # ... ); my $r = $perlop{$op}->($a, $b);