Changes for version 0.000002 - 2026-05-12

  • API rework: clean_eval and clean_string_eval now always return a blessed Clean::Eval result object. New 'ok' field drives the bool overload; new 'out' field holds the block's scalar-context return value on success (block form only - string form never captures a result, since the body may be defining subs, BEGIN/END blocks, or otherwise producing nothing meaningful in scalar context).
  • 'error' key is now only present on failure; 'out' key is only present on block-form success. Stringification yields the empty string on success and the trapped error on failure.
  • last_error() is now only updated on failure (successes no longer reset it). Documented that it remains fragile under DESTROY-time reentry; capturing the result object at the call site is the robust path.
  • New convenience accessors: ok, out, error.
  • Expanded POD: synopsis updated for the new pattern (if (my $ev = clean_eval {...}) { ... = $ev->out }), new RESULT OBJECT section, PITFALLS section covering the my-in-conditional/or-die parsing gotcha, forced scalar context on block return, string-form lexical visibility, return-from-block semantics, and the (&) prototype not accepting a coderef variable.

Documentation

Modules

Run code under eval without leaking $@ and get a rich error object back on failure.