Well, your $octets only has 7 bytes in it, so it wouldn't pass the specs of "either 8 or 11 octets". Fiddling with it a bit suggests you dropped a "07" from the start:
in reply to Re^4: Convert Octet String DateAndTime to printable string
in thread Convert Octet String DateAndTime to printable string
This prints: "2008-06-01 01:39:59".
# you presented the octets as a string of hex numbers.
# I'll do the same, then strip out the spaces, and pack
# it into binary format
$octets = "07 D8 06 01 01 27 3B 00";
$octets =~ s/ //g;
$octets = pack "H*", $octets;
# now $octets is in a form as you would get back from snmp,
# so we unpack with the template I gave earlier:
@date = unpack 'n C6 a C2', $octets;
# and print
$datetime = sprintf "%04d-%02d-%02d %02d:%02d:%02d", @date;