Why doesn't md5 match Perl's Digest::MD5 output?
ksh, md5, perl
Solution
use the more portable `printf`
printf "abc" | md5
Problem
Running the md5 function from the ksh terminal does not matching the output from a simple Perl script. In the terminal I run: ``` echo -n abc | md5 62fecf21103616856d72e6ffc9bcb06b ``` If I run it using Perl: ``` use Digest::MD5 qw(md5_hex); foreach (@ARGV) { print "Digest is ", md5_hex($_), "\n"; } exit ``` I get ``` ./perl_test.sh abc Digest is 900150983cd24fb0d6963f7d28e17f72 ``` In all the samples I see and the sample of the `md5` function itself the Perl one looks right but the one using just Ksh doesn't: ``` md5 -x MD5 test suite: MD5 ("") = d41d8cd98f00b204e9800998ecf8427e MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661 MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72 ```