Evaluating user-defined conditions
jason at ukfsn.org
Mon Jun 9 12:03:13 BST 2014
On 2014-06-09 11:36, Andrew Beverley wrote:
> Dear all,
> I'd like to take a condition specified by a user and use it to
> perform a
> set of tests on a data set. Is there a module to do this?
> For example, I might have an array of hashes containing "name",
> and "age". I would like a user to be able to define their own
> such as "age > 10 && price < (age + 5) * 10", and then to get the
> (true or false) for each of the array items.
> Is there a nice easy way to do this without trying to parse the
> condition myself? Presumably I could do some sort of eval, but that
> sounds highly dangerous with user input ;-)
Take a look at Safe.pm for a way to do a safe eval.
We did something around this recently to provide something rather like
what you describe and it works very well.
More information about the london.pm