I don't believe a true cross-server join is possible. Depending on your reporting requirements, or how you are going to interact with the data, you could get at the data with a lot less coding work by using something like Class::DBI. You would essential create two classes, on for each DB, then declare the has_a/many relationships between the two. The underlying code would take care of joins the data when accessing the relationships.
From the CDBI pod:
NOTE: The two classes in a relationship do not have to be in the same database, on the same machine, or even in the same type of database! It is quite acceptable for a table in a MySQL database to be connected to a different table in an Oracle database, and for cascading delete etc to work across these. This should assist greatly if you need to migrate a database gradually.