my $op = shift @ARGV; # first element of ARGV in $op and removed from @ARGV. my %h = ( add => \&add, multiply => \&multiply); print $h{$op}->(@ARGV) . "\n"; # subs as before