$ perl -le 'printf( "%04x\n", 12)' 000c #### perl -le 'printf( "\\x%02x\\x%02x\n", 12 )' # WRONG \x0c\x00 #### perl -le 'printf( "\\x%02x\\x%02x\n", unpack( "C2", 12 ))' WRONG \x31\x32 #### perl -le 'printf( "\\x%02x\\x%02x\n", unpack( "C2", pack("S", 12)))' \x0c\x00 #### perl -le 'printf( "\\x%02x\\x%02x\n", unpack( "C2", pack("n", 12)))' \x00\x0c # Another way to say that . . . perl -le 'printf( "\\x%02x\\x%02x\n", unpack( "C2", pack("S>", 12)))' \x00\x0c