my $op = shift @ARGV; # first element of @ARGV now in $op and removed from @ARGV. print add(@ARGV) . "\n" if $op eq 'add'; print multiply(@ARGV) . "\n" if $op eq 'multiply'; # subs as before #### 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