Changes for version 0.17

  • Two killer bugs were discovered in 0.07 and so the entire module was reimplemented using test-first development.
    • Devel::Cover was used to make sure all the code pathways are covered. There are a few branches not followed but they are mostly in areas that perl doesn't define execution order like the cleanup of globals during global destruction.
    • The undocumented ->Dump method produces lisp-like data. In scalar or list context just returns its value, in void context it prints it.

Modules

Delay the evaluation of expressions to allow post facto changes to input variables
Recompute values as needed to use post facto changes to input variables
Delayed evaluation expressions are "collapsed" once observed
Put off computing a value as long as possible but throw errors if later changes are attempted

Provides

in lib/Data/Postponed/Util/NoLonger.pm
in lib/Data/Postponed/Util/ReadOnly/Scalar.pm
in lib/Data/Postponed/Util/ReadOnly/Array.pm