Check out DBD::Proxy and DBI::ProxyServer included with DBI. It is a pure Perl implementation of a proxy for DBI. I think it only works with a single database at a time. But the proxy can connect to different databases.
If you want to have a single connection be multiplexed to multiple databases, then you are going to need something like DBD::AnyData. You will have to parse the SQL statement and produce a query plan. And then using schemas for the databases, figure out which data comes from where, and craft queries to retrieve it. And then put all the data together. DBD::AnyData can use DBI sources, but I don't know if it can use them for dynamic queries.