http://qs321.pair.com?node_id=1211506


in reply to Re^2: How to evaluate a mathematical formula that is stored in another file?
in thread How to evaluate a mathematical formula that is stored in another file?

In my simplistic example code I assumed that a variable name consists of lower case letters. The regular expression ([a-z]+) finds any consecutive sequence of (at least one) lower case letters. It is then replaced by $data{$1}//' ' where $1 stands for the found sequence. $data{$1} is the value assigned to that sequence ie the variable name. If it does not exist in the hash %data the expression //' ' ensures that a blank is used instead (also makes sure that no warning is issued).

I have used s||| instead of the more common s/// to avoid confusion on the // operator.

In the push statement I store the found sequence as in $1 in the array @error if %data did not contain a value for the variable. This is some kind of crude error handling and I can list the names of variables without values further below in the code.

Again, this is only a simplistic example, and not the only way to look at your requirements. The evil eval is still not fully defused and one could create havoc with mischievous inputs in the values or formulae provided.

Replies are listed 'Best First'.
Re^4: How to evaluate a mathematical formula that is stored in another file?
by skooma (Novice) on Mar 29, 2018 at 05:48 UTC
    Thanks.