examples/references/dispatch_table.pl
#!/usr/bin/perl
use strict;
use warnings;


sub add {
    my ($x, $y) = @_;
    return $x+$y;
}

sub multiply {
    my ($x, $y) = @_;
    return $x*$y;
}

my %dispatch = (
    '+'  => \&add,
    '*'  => \&multiply,
);

my $op = '+';
print $dispatch{$op}->(2, 3), "\n";