Attach/detach debugger from running program
The old perltodo notes "With gdb, you can attach the debugger to a run+ning
program if you pass the process ID. It would be good to do this with t+he
Perl debugger on a running Perl program, although I'm not sure how it +would
be done." ssh and screen do this with named pipes in /tmp. Maybe we ca+n too.

Unless it's started with debugging enabled, no I don't think there's a way to get an existing process into the debugger. However having said that you probably could come up with a creative combination of PERLDB_OPTS and a subroutine which you trigger somehow (say sending your process a SIGUSR1) that sets $DB::signal to make it so that you can get it to drop into the debugger on demand rather than from the start. See perldebtut, perldebug, and perldebguts for more hints (and I don't want to hear any complaints about performance if you run everything under the debugger :).

(And as a parenthetical aside, it'd be cool if there was some way to do something in Perl akin to the Ruby on Rails breakpoint / script/breakpointer setup. That lets you have breakpoint calls in your Rails code and then you run the breakpointer script which attaches to an irb (interactive Ruby; think perl -de 0) session which interacts with the Rails app via DRb calls.)

I prefer the gui interface provided by perl -d:ptkdb <SCRIPTNAME>
You must have the DEVEL/ptkdb.pm module installed for this to work.
On the other hand, I've used signals to adjust variables inside a script that control the amount of debug information written out. I gave the ability to "kick" the script through debug levels 1-4 and back to off.
That worked quite well and would provide you the opportunity to get specific variable dumps at certain points in your code.

First you must have error logs file path in your server. With that you can able to trace the error in the file.
Or you can just add the following code to see whether that particular function is working or not: