Changes for version 0.18

  • Found out why 5.005_04 doesn't work: dereferencing and iterators aren't overloadable so the tests failed.
  • Removed t/debug.tst from the MANIFEST so it will be removed from the SIGNATURE so when it changes, it won't be an error.
  • In Data::Postponed::Once and Data::Postponed::OnceOnly, attempt to overwrite the object with the finalized value but only on recent enough perls. Older stuff has a bug I don't fully comprehend yet.
  • Added some compile-time conditional compilation so stuff that is only applicable to 5.6+ will only be seen in those cases, etc.

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