Perl дает вам хэш введенной вами буквальной строки, тогда как echo добавляет новую строку. Если вы скажете echo
не добавлять новую строку, вы получите тот же результат:
drewfus:~$ perl -MDigest::SHA1 -E'say Digest::SHA1::sha1_hex("foo");'
0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33
drewfus:~$ echo -n "foo" | sha1sum
0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 -