Tried your code and I am seeing the same thing, even on the localhost's own file system. Interrestingly I tried it on two seperate copies, /opt/hello and /tmp/hello, and those two DO compare via Digest::MD5! Neither's hash matches that of the original. This is true on W2K, GNU/Linux, and Solaris, perl 5.6.0.