Use TNSNAMES.ORA. Really. Don't hardcode database connections, use the standard configuration file TNSNAMES.ORA.
Configure the machine running perl to resolve some arbitary hostname to the desired IPv6 address, e.g. by editing /etc/hosts / %windir%\system32\drivers\etc\hosts or by adding an AAAA record to your local DNS server, and use that hostname instead of the IPv6 address.
Look at the DBD::Oracle documentation, especially "the usual suspects" README*.*, CHANGES, NOTES, TODO.
Look at the source of DBD::Oracle to find out how the connect parameters are handled. Especially trace the way of the host parameter, watch out for calls to routines that can't handle IPv6 addresses.
Write a patch for DBD::Oracle, including tests, and send it to the DBD::Oracle maintainer.
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)