an executable that I can deliver to users who don't have perl installed on their machines. The exe has to connect to a database and must contain a password
That sounds dubious. Is the database on their network or yours ?
If it's on their network, put the user/pass in a plain textfile that gets read by the executable. You really shouldn't care if it readable by the customer.
If it's on your network, the executable should talk to the database via a carefully crafted set of RPC APIs (SOAP, XMLRPC, JSON, REST, whatever) that use password-auth/ACLs/IPs/certificates as appropriate to secure the service. Even then, you can feel free to store those credentials on the client's disk separately to the executable... just make sure users are aware of the security issues associated with losing/sharing their credentials (and you should have policies to deal with those aspects).
It's a really bad idea to expose an RDBMS over the internet.