use strict; use warnings; sub myMessage { my $payload = shift; my $format = "\N{STX}" . '%08u' # Byte count . '0' x 8 # Reserved . '%s' # Pay load . "\N{ETX}" ; return sprintf $format, 18 + length($payload), $payload; } my $result = myMessage(""); print $result, "\n"; print unpack 'H*', $result; #### >perl CuriousMark.pl .0000002700000000. 02303030303030323730303030303030303c5041594c4f41443e03 >