cでは
char x = 'a';
printf("%02x",x);

result:61

だけど
perlでは
my $x = 'a';
printf("%02x",x);

result:00

になるsprintfでも同様です
perlではunpackじゃなきゃだめなの?