Repost with a better subject. Sorry for the duplication.... On 23 Feb 2018 17:31, "Yves Orton" <demerphq@gmail.com> wrote: + if ($pack->can("((")) { + # this eval is required, or fail the overload test + # in dist/Carp/t/vivify_stash.t, which is really quite weird. + # Even if we never enter this block, the presence of the require + # causes the test to fail. This seems like it might be a bug + # in require. Needs further investigation - Yves + eval "require overload; 1" + or return "use overload failed"; + } + my $sub = _fetch_sub(overload => 'StrVal'); + return $sub ? &$sub($arg) : "$arg"; } } Can anybody shed any light on why the eval above is required? If you replace that line with a simple "require overload;" then even when the if condition is false and the require is NOT executed we fail the "didn't load overload" test in vivify_stash.t which makes no sense to me. Why would a require that is not executed have any side effects? Why is the eval necessary to avoid those side effects? Is this a bug or have I missed something? Yves -- perl -Mre=debug -e "/just|another|perl|hacker/"Thread Next