in reply to Re: Debug basic calculator syntax
in thread Debug basic calculator syntax

Although the issue at hand might be to correct the above example code, forgive me if I mention the obvious - i.e. that for evaluating formulas read in as data, the eval function does seem rather suitable. Because it is functionally overkill, a filter function is also supplied in this quickie example:

#!/usr/bin/perl do { print "CALC> "; printf "%f\n", eval( Filter(<>) ); } until 0; sub Filter { my $exp = shift; ( $exp =~ /^\s*exit/ ) and return $exp; ( $exp =~ /^\s*(\w+)/ ) and return 'print STDERR "$1 denied\n"'; return $exp; }

example session:

CALC> 0.7*0.9

0.630000

CALC> 0.6-0.8

-0.200000

CALC> mkdir freddy;

mkdir denied

CALC> exit

$

-S