##
$ time perl -e '$a = "a" x 20_000; $a = substr($a, 1) while length($a);'
user 0m0.350s
$ time perl -e '$a = "a" x 40_000; $a = substr($a, 1) while length($a);'
user 0m0.791s
$ time perl -e '$a = "a" x 80_000; $a = substr($a, 1) while length($a);'
user 0m2.683s
####
my $n = unpack("v", substr($str, $off, 2));
$off += 2;
####
my $n = unpack("v", substr($str, $off, 2, ""));