I'm guessing that the 'echo' command perl is picking up for use is not the same one you're using from the command line (which is probably not the standalone echo command but a shell builtin).
You can play around by providing the full path to stand-alone echo (in both your perl script and on the command line) to see what happens.
| [reply] |
You are right. I changed
$hash1 = `echo -n $text|openssl dgst -sha1`;
to
$hash1 = `/bin/echo -n $text|openssl dgst -sha1`;
and I now get the expected values.
Thanks for your help!
| [reply] [d/l] [select] |
Interesting. Normally, when you type echo in a shell, its echo
builtin is being used (I think this applies to OS X, too).
Initially, I suspected a difference between the echo shell builtin
and /bin/echo to be the cause here, but then, on second thought, rejected
the hypothesis, as you said you were getting the correct digest
when issuing the openssl command on the command line with the same plain "echo".
In other words,
as I see things, with a plain "echo" you should be using the builtin in both
cases, i.e. from within the backticks (because of the '|' symbol, which
should cause Perl to run the command via the shell (sh -c ...)),
as well as on the interactive command line (which is a shell, anyway, typically).
So I'm still wondering what's different here on OS X. Any ideas, anyone?
| [reply] [d/l] [select] |