in reply to Re^6: Perl $dbh->prepare failed
in thread Perl $dbh->prepare failed

as has been pointed out..your database handle becomes invalid from script to script, as they are individual instances of perl. in case of using mod_perl on a webserver you have to be aware of a basic gotcha..mod_perl runs one instance of perl and bootstraps the script code into it. this produces some weird results if you're not careful with variables, as these (variables of same name) will keep their values from previous run. this would explain you being able to print a (supposedly valid) reference to the database handle from the second script. Unfortunatelly this is just a left over value due to mod_perl side effects, but the database handle is actually invalid.
from what i understand of your web application, it doesn't need to keep sessions alive and complex state handling. I understand that one script gets some form input and generates a clickable table or form or such. then clicking on this calls the second script to generate more output etc. For this kind of thing you make each script totally independent and "atomic". first script gets called: process input, open database, read, close database, generate output. second script would do exactly same. without special attention, coupling these separate scripts closer together is a recipe for problems.
the hardest line to type correctly is: stty erase ^H