TF wrote:
....
I've been basically doing this for two weeks, but it takes a whole day to
get to this point and the data from the last request and last stored plce
isn't helping much.
Once I kill the process, the dbm is screwed so I can't really see anything.
All it says is, can't find the end (closing quoute) of data entry or
something like this, MLDBM error.
However, I think that is the result of killing the process while it had the
db open.
I can add more logging, but the logfile is liable to fill the disk before
It sounds to me like you just need some basic debugging techniques. If
you are (as previous notes in the thread stated) using LWP to grab info
from a whole bunch of web pages, make a simple log file that writes out
the URL of every page accessed. Set the log file filehandle to
autoflush ($|=1

so you don't miss the last bufferful when you
terminate the process.
Then, when you know the URL that's generating the problem, retrieve just
that page and use the Perl debugger to see what's up with your code on
that data.
You might note that LWP by default should timeout after 180 seconds, so
if there is a web page that's not responding, the job should still
proceed, albeit slowly. You could change the timeout if it is just an
insufficient patience problem.
Also, you might check to see if the DBM-type implementation you are
using is compatible with your data. Some of the implementations (like
SDMB, for example) have limitations on key and value lengths which MLDBM
could very easily exceed. Consider using DB_File instead (if you aren't
already). You'll probably have to refer to the docs for the specific
DBM-type implementation you are using on your specific platform and OS.
Finally, note that you could close the MLDBM connection in a $SIG{INT}
handler. That way you won't corrupt your database when you kill your
program via the console, assuming you follow proper file locking
protocols in your program and in the signal handler.
HTH.