in reply to Re (tilly) 1: END failed --- call queue aborted
in thread END failed --- call queue aborted

I always write code as:

#!/usr/bin/perl -w use strict; #[globals here] exit main(); #[subs here] sub main { #code here return 0; }

In that case, the exit has two purposes. One, prevent execution of dangling code between the subroutines (which should be in BEGIN blocks if you meant it to be there). Two, give a place to set a break point when debugging. ...THREE! threefold! Also encourages placing objects into "sub main" so that they get destroyed in an orderly fashion. ...FOUR! And a fanatical devotion to write code that looks like C. No, wait! It was only threefold after all.

(though I think I'm forgeting another reason...)

        - tye (but my friends call me "Tye")