in reply to Re^3: error messages without program names or line numbers
in thread error messages without program names or line numbers
In that case you can wrap an eval {...} block around calls to suspect external subs (or anywhere else). Error messages will be passed into $@ ($EVAL_ERROR) and you can do with them what you like. Either test for undef returned by eval, or $@ for a non-empty string, both of which indicate an error has occured.