my $n = unpack("v", $str); $str = substr($str, 1); #### $ 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, ""));