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

I'm trying to get a new machine up and running. As part of the process I do a perl syntax check on all perl programs to make sure that the necessary modules are installed. For some reasone this is hanging on hundres of programs. An strace of the process is available here. I haven't confirmed this yet, but I believe it is hangning when trying to use custom modules that have been included with use lib;. Can someone offer help?

Replies are listed 'Best First'.
Re: perl syntax check hangs $(perl -c)
by jasonk (Parson) on Dec 28, 2007 at 19:17 UTC

    While using check, all the code that runs at compile time (mainly use commands and anything in a BEGIN block is going to be run. If any of that code hangs, the process will hang. I would start by using Devel::Trace to watch what the process is actually doing when it is haning, you will probably find it's stuck in an infinite loop somewhere or doing something that is very slow a large number of times.

    In the case of the strace you provided, it looks like the application is probably doing a lot more than you expected it to while running under -c, as at the end of the strace the application is attempting to make MySQL connections to bench1.tradetech.net.


    We're not surrounded, we're in a target-rich environment!
Re: perl syntax check hangs $(perl -c)
by cdarke (Prior) on Dec 28, 2007 at 19:15 UTC
    I know it sound peverse, but -c does a compilation, and some code will run at compile time. Any code in the body of a module, or in BEGIN blocks, will be run when a use statement is found. Looks like one of the modules is trying to connect.
Re: perl syntax check hangs $(perl -c)
by mhearse (Chaplain) on Dec 28, 2007 at 21:41 UTC
    Thanks for your replies. Problem solved.