Ahhh, fun with raw(8) and pack("p", ...) to align Perl scalars to blockdev --getbsz -sized boundaries in memory.
I'd post the script but I don't want to be responsible for you destroying your filesystems on accident.
(P.S. This has practical value, except for the Morse Code part....)