in reply to Printing byte as 2 Hex characters
printf ("%lX ", $buffer);
You probably want ord:
printf ("0x%lX ", ord $buffer);
because what you have in $buffer is a single byte string, not a number.
A more direct way might be to use unpack "H*", ...
$ perl -E'say unpack "H*", "foobar"' 666f6f626172
or maybe unpack "(H2)*", ..., as in
$ perl -E'say "0x$_" for unpack "(H2)*", "foobar"' 0x66 0x6f 0x6f 0x62 0x61 0x72
in which case your buffer could consist of more than one byte.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Printing byte as 2 Hex characters
by ShiningPerl (Novice) on May 30, 2012 at 16:02 UTC |
In Section
Seekers of Perl Wisdom