in reply to Perl Hanging
There are nearly 10 years and at least 14 versions of differences between 5.60 & 5.8.8. Whilst the perl devs do an amazing job of maintaining backwards compatibility, that is a big leap to make without testing.
The first thing you need to discover is where in the code it is hanging. And the simplest way to go about that is to set up a non-production machine with perl and an appropriate directory structure so that you can run the script manually and see what happens.
If you run monitor.pl from the command line like this:
perl -d:Trace monitor.pl
You may need to install Devel::Trace if you do not already have it
Then you will get a line by line trace of the running program output to the screen. Wait until the script reaches the point where it is waiting for files, and then copy an appropriate file into the appropriate subdirectory and see what happens.
Note: The program will run considerably more slowly than normal, and will produce masses of output. Once you have some idea of where the program is hanging (or looping), you can add use Devel::Trace into the script itself and place
Devel::Trace::trace('on'); # Enable Devel::Trace::trace('off'); # Disable
at significant points in the code to limit the output to the important bits.
You can also re-direct the output to a file:
perl -d:Trace monitor.pl 2>&1 > monitor.log
And then load it into an editor to track it through. Make sure you have plenty of disk space available on the machine.
You should also seriously consider contracting a local Perl programmer to help you out.
|
|---|