After mucking around with this for a while, as well as having others muck around, we can't seem to come up with an easy way to overload print. If you are feeling ambitious, take a look at the code for Fatal.pm, which may help you. Also look at the archives for c.l.p.m(oderated|isc) and see if this has come up there. If you don't mind the first line not being numbered, you could always use $\ to do this. Interesting problem, hopefully I will have a tuit to muck with it this weekend. But, I believe that since 5.004 or something this is one of the functions that can't be overloaded.
Cheers,
KM