I've trawled through my back catalog of code and seem to have lost examples of Oracle connections across a network from windows, oops.
This is possible and even easy when your settings are correct so don't give up.
I've never had to set ORACLE_SID like that in the connect string. If it is not in the environment of the user that is running the script, then SID is settable in the begin block.
Try using DBI's installed_drivers method to loop through the hash of drivers before attempting your connect
Keep plugging away, change vars / permissions / I would stake 200xp theres a simple solution to this one :)