Can you connect using a normal MySQL client? Did you actually try
right before your attempt at a Perl connection?
(If you have root access, perhaps you also have shell
access to that server).
Anyway, if you can connect from the command line and
not from a script, it could be that you are using a
socket that isn't standard, and from the command line it
is found thanks to a configuration file or an environment
variable, while in the Perl script it is not seen at all.
That was just speculation. Now. If you really have
root access, try creating a normal user, and connect to
your server using an IP address (instead of localhost)
and that user. Try it from the command line first.
This should either solve your problem or give you more information t
about asking for more help.
In addition to what others have offered you in their answers,
you may look at Before asking a database related question ..., where you'll find some
useful advice.