Well, there's always the tried-and-true method of removing or commenting out all the code that could possibly offend perl. Keep going until your END block works again (i.e. a test print at the very end works). Then just your code back in bit by bit until the block fails again, and you'll know what the problem is.
Or, put in a bunch of print statements around your code to see how far your program gets before its dies.
Kludgey advice, but you're not giving us much else to work with.
Comment on Re: besides die() how might I have raised an untrapped exception