Error-Base
view release on metacpan or search on metacpan
lib/Error/Base.pm view on Meta::CPAN
# Reads : every key in $self starting with a $, @, or % sigil
# : $self : available as '$self'
# Returns : $out : scalar string
# Writes : ____
# Throws : ____
# See also : ____
#
# I hope this is the worst possible implementation of late().
# Late interpolation is accomplished by multiple immediate interpolations,
# inside and outside of a string eval.
# Non-core PadWalker is not used to derive interpolation context;
# caller is required to pass context inside the $self object.
# To avoid collision and unintended interpolation, I make housekeeping
# variables internal to this routine, package variables.
# These are fully qualified to a "foreign" package; caller cannot
# accidentally access them (although I cannot stop you from doing stupid).
# Some work is done in a bare "setup" block with lexical variables.
# But package variables are used to pass values within the routine,
# from block to block, inside to outside, within and without the eval.
# Quoting is a major concern. Heredocs are used in three places for
# double-quoted interpolation; they may not conflict with each other
( run in 0.588 second using v1.01-cache-2.11-cpan-05444aca049 )