Have you tried Business::OnlinePayment? It gives you a generic interface to several credit card processors. Business::OnlinePayment::AuthorizeNet on CPAN seems to be broken with the newest version of AuthorizeNet's EDI. I fixed AuthorizeNet.pm according to their Appendix last month, but I haven't yet sent back the changes to the maintainer. Here is my modified AuthorizeNet.pm (ugly)
Here
I have this working production, so I could give you a hand if it doesn't work out-o-box for you.
Paul