in reply to Inputing an Operator is it possible?
I'm more comfortable with code like that because it leaves less room for unexpected errors from bad input.$operator = <STDIN>; chomp $operator; if ($operator eq '+') { $result = $a + $b; } elsif ($operator eq '-') { $result = $a - $b; } elsif ($operator eq '*') { $result = $a * $b; } else { die "unknown operator \"$operator\"\n"; }
$first=<STDIN>; $second=<STDIN>; $operator=<STDIN>; chomp $first; chomp $second; chomp $operator; $expression = "$first $operator $second"; print "$expression:\n"; $result = eval $expression; if ($@) # ($@ is set by eval if something went wrong) { print "oh no!: $@\n"; } else { print "$result\n"; }
By the way, you shouldn't get into the habit of using $a and $b as variable names, since those two variables have special meaning for perl's sort function.
|
|---|