The poster didn't ask for 'hex to octal', but wanted an "octet string" of a given format.
Once upon a time, a 'byte' wasn't necessarily eight bits It could be 4. ASCII was defined when it was often 7 bits per byte. The word 'octet' is used to refer to an eight bit entity, regardless of the byte size, word size, bus size, stop or parity scheme, or other implementation details.
The poster could/should look at the unpack function (perldoc -f unpack) for some ideas. It can be done with a simple string manipulation but it's more flexible if you unpack to four octets, then format it again (with sprintf "%x" or any other method).
-- [ e d @ h a l l e y . c c ] |