[Purdue-pm] Perl 5 Dispatch Tables

Mark Senn mark at purdue.edu
Sat May 25 21:21:15 PDT 2019

I blogged about Perl 5 Dispatch Tables at

In short, I don't use conventional dispatch tables because they
violate the don't repeat yourself principle.  I'm only dispatching
to subs based on trusted information and the core of the idea is

sub __SUB__add  { return $_[0] + $_[1]; }

my $_ = 'add 1 2';

# Split the line of text into words.
my @word = split /\s+/, $_;

# Get the command name from @word and leave the arguments
# in @word.  Prepend ’__SUB__’ (two underlines before and
# after ’SUB’) to the comand name.
my $sub = ’__SUB__’ . shift @word;

# Is the "__SUB__$sub" name defined?
defined(&$sub)  or  die qq/sub "$sub" is not defined/;

# Do the command.
say $sub->(@word);

See the web page for more information.


More information about the Purdue-pm mailing list