in reply to pack construct in java

It's equivalent to the following string in Java

"29\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ +u0000\u0000\u0000"

For what it's worth, they probably meant one of:

pack "a"x16, ...; pack "c"x16, ...;

... which would have made more sense. In the version you posted, only the first hex number is used (0x1d == 29) and padded to 16 bytes; the rest are ignored.

package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name