use bytes; if (vec($s,3,2) < 3) { vec($s,$_,8) = vec($s,$_+1,8) for 0..length($s)-2; chop($s); } else { vec($s,$_,8) = vec($s,$_+1,8) for 0..length($s)-2; chop($s); while (vec($s,3,2) == 2) { vec($s,$_,8) = vec($s,$_+1,8) for 0..length($s)-2; chop($s); } } #### use bytes; if (vec($s,3,2) < 3) { () = $s =~ m/.(?=.)(?{ vec($s,pos($s)-1,8) = vec($s,pos($s),8)})/sg; chop($s); } else { () = $s =~ m/.(?=.)(?{ vec($s,pos($s)-1,8) = vec($s,pos($s),8)})/sg; chop($s); while (vec($s,3,2) == 2) { () = $s =~ m/.(?=.)(?{ vec($s,pos($s)-1,8) = vec($s,pos($s),8)})/sg; chop($s); } }