These are just a couple of warnings for you (hopefully, you'll find this advice irrelevant ).
I've run into problems with $@ on -some- Windows systems. However, you can always use $EVAL_ERROR ( $@ is shorthand for this ). I don't know where this bug comes from, sorry.
Also, on the Emachine T2862 (and only this model, in my experience), I've had problems with:
print HANDLE $stuff ; # doesn't seem to work on T2862
Hopefully, you're not dealing with one of those.
Good luck.