If those few operations are all you need, there's nothing wrong with the if/else dispatching above. However, if you ever want to extend it to other mathmatical operations, I'd use a dispatch table:
my %OPERATIONS = ( '*' => sub { $_[0] * $_[1] }, '-' => sub { $_[0] - $_[1] }, '+' => sub { $_[0] + $_[1] }, ); # $operator, $first, and $second defined # elsewhere, from user input print "Result: ", $OPERATIONS{$operator}->($first, $second), "\n" if exists $OPERATIONS{$operator};
Also, avoid using $a and $b as variable names, as they have special meaning in sort subroutines.
----
I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
-- Schemer
:(){ :|:&};:
Note: All code is untested, unless otherwise stated
In reply to Re: Help with simple calculator script.
by hardburn
in thread Help with simple calculator script.
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |