my $op = shift @ARGV;
if ( $op eq 'add' ) {
my $rtn = add( @ARGV );
print "The sum is: $rtn\n";
} elsif ( $op eq 'multiply' ) {
my $rtn = multiply( @ARGV );
print "The product is: $rtn\n";
}
####
sub add {
my $sum = 0;
for ( @_ ) {
$sum += $_;
}
return $sum;
}
####
sub add {
my $sum = 0;
$sum += $_ for @_;
return $sum;
}
####
#!/usr/bin/perl --
use strict;
use warnings;
my $op = shift @ARGV;
my %ops = (
'add' => sub { my $s = 0; $s += $_ for @_; print "The sum is: $s\n" },
'multiply' => sub { my $p = 1; $p *= $_ for @_; print "The product is: $p\n" }
);
$ops{$op}(@ARGV) if exists $ops{$op};
####
#!/usr/bin/perl --
use strict;
use warnings;
my $op = shift @ARGV;
my $result;
$op eq 'add' ?
( $result = 0, map { $result += $_ } @ARGV ) :
( $result = 1, map { $result *= $_ } @ARGV );
print ( $op eq 'add' ? 'The sum is:' : 'The product is:' );
print " $result\n";