I'm not 100% sure what you're trying to do, but I hope this helps. To get a crypted string on a system whose crypt does not support MD5, you can't use
Digest::MD5. Just use the Perl
crypt built-in. MD5 hashes do not have a "salt" in the crypt sense. They're totally different things. With a Unix crypt, one password can generate dozens of different crypt hashes, each with different salts, however the same password will only ever generate one MD5 hash ever. At least, that's how I understand it. I guess it's possible that the MD5 password implementations add a certain string to the beginning/end of a password before passing it through an MD5 hash, but it seems like that's getting to be too much. MD5 hashes are safe enough in my opinion as they are.
Update: Check out Crypt::PasswdMD5. I believe this does what you want.