It does look like a Unicode issue. On the machine where I was having trouble, $LANG was: en_US.UTF-8 Removing UTF-8 from $LANG eliminates the problem: $ env LANG=en_US perl -e 'print pack("H*","208010")' | od -Ax -tx1 000000 20 80 10 000003 Thank you so much for pointing me to the source of the problem. Youssef Eldakar Bibliotheca Alexandrina
-----Original Message----- From: Randy W. Sims [mailto:[EMAIL PROTECTED] Sent: Sun 7/11/2004 9:55 PM To: Youssef Eldakar Cc: [EMAIL PROTECTED] Subject: Re: Packing a Hexadecimal String Youssef Eldakar wrote: > I am running Perl 5.8.0 on Linux. > > -----Original Message----- > From: Randy W. Sims [mailto:[EMAIL PROTECTED] > Sent: Sun 7/11/2004 11:01 AM > To: Youssef Eldakar > Cc: [EMAIL PROTECTED] > Subject: Re: Packing a Hexadecimal String [SNIP] > When I get a chance I'll check on my laptop which is running Debian > GNU/Linux with perl 5.8.3. What are you running? I get the correct results also on my laptop. Did you build this perl yourself? Did you run the test suite? Hmm, maybe it's a unicode problem and it's breaking during the output. I don't know much about unicode, so I may be way off. But... try: perl -C0 -e ... -or- perl -Mbytes -e ... -or- maybe better: eliminate the print altogether by doing a round-trip pack then unpack and compare the results to see if you get the original value. Regards, Randy.