in reply to parsing Binary Structures using unpack

Your data doesn't appear to have a null-terminated string in it. At least it doesn't have a null byte.

Allowing a throwaway byte and an int at the head, and three ints at the tail,

my $player = substr $packet, 5, -12;
seems to get a bunch of sane-looking data.

The ints can be gotten with unpack and substr,

my $id = unpack 'xV', $packet; my ($ping,$score,$stats) = unpack 'V3', substr $packet, -12;

Looking at substr $packet, 5 , I suspect your $packet grabber is truncating at the null byte. The last few bytes read "RedBlue\n\n" from what looks like a Mac environment where newline is LFCR.

After Compline,
Zaxo