Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi PerlMonks,

I need your assistance here. I'm trying to figure out which loaded module (in a large project) is including an old version of List::Util (v1.18) - i.e. the version that is included with core perl 5.8. I am trying the following:

From a breakpoint in my code, I'm running

use File::Grep qw(fgrep) x fgrep { /list\:\:util/i } values %INC

I still haven't had success yet locating the specific module, but it does find the correct inclusions. The problem here is the chain of includes, so at the moment i'm only finding the top level. Is this the best/only way of doing this or maybe there are utilities that I'm unaware that can help me?

With so many perl module versions floating around, this seems like it might be a common task.

Thank you for your time.

Michael

Replies are listed 'Best First'.
Re: strategy for tracking down old version of "use List::Utils"
by CoVAX (Beadle) on Mar 03, 2015 at 23:56 UTC

    Perhaps Module::ScanDeps may be suitable for your purpose?



    Searched for donut and crumpit. Found donate and stumbit instead.
Re: strategy for tracking down old version of "use List::Utils"
by Anonymous Monk on Mar 04, 2015 at 00:45 UTC

    um, what difference does it make? Get rid of the old version, and be done with it :)

    Also, check @INC and Devel::Trace/Devel::TraceUse

Re: strategy for tracking down old version of "use List::Utils"
by Anonymous Monk on Mar 04, 2015 at 00:58 UTC
    What about adding print scalar caller to the old List::Util.
      or without scalar, for that matter
        Yes, works better without scalar :)