NOTE: Scalar::Lazy is also a possible candidate for the deferred values, it does not try to hide evidence of it's presence and is implemented with tie so can be very slow.
It also requires you to force the value in some cases, which (again) is not always ideal.