Sub-refs in @INC screwing with your modules

Adriano Ferreira a.r.ferreira at
Wed Aug 5 21:37:47 BST 2009

On Wed, Aug 5, 2009 at 4:48 PM, David Cantrell <david at>wrote:

> As part of an Evil Plan, I am putting a sub-ref into @INC that will
> screw around with modules as they're loaded.  Or at least, I'm trying
> to.  I can't seem to get this to work:
> perl -MIO::Scalar -e '
>    unshift @INC, sub {
>        print q{wibble};
>        return IO::Scalar->new(\q{print q{wobble}})
>    };
>    eval "use foo"
> '

I don't remember the details if I tried to use IO::Scalar/IO::String to do a
similar thing in Devel::Hide and couldn't (or if I just got lazy), but the
fact is that the current Devel::Hide code uses in-memory handles (which we
got with    open(my $io, '<', \$string)  for Perl 5.8+) and File::Temp for
older perls.


> which *should*, if I've RTFM correctly, print "wibblewobble".  But the
> wobble never appears.  What am I doing wrong?
> --
> David Cantrell | Hero of the Information Age
>  Sobol's Law of Telecom Utilities:
>    Telcos are malicious; cablecos are simply clueless.

More information about the mailing list