You're getting this compilation error because you have an
older version of Perl. I'm guessing Perl 5.004 or something?
Or less, perhaps.
That version of substr wasn't added until 5.005. In the
docs:
An alternative to using substr() as an lvalue is to
specify the replacement string as the 4th argument.
This allows you to replace parts of the EXPR and
return what was there before in one operation,
just as you can with splice().
You'll probably have to make do w/ a two-step operation;
first get the first 32 characters using
substr, then strip
the first 32 characters:
while ($txt = substr($hex, 0, 32)) {
substr($hex, 0, 32) = "";
print "'$txt'\n";
}
See if that works for you.