croak 'Invalid negative offset' if $fs < 0 or $ts < 0;
croak 'Invalid negative length' if $l < 0;
my $step = $ts - $fs;
- if ($step <= 0) {
+ if ($step <= 0) {
vec($_[2], $_ + $step, 1) = vec($_[0], $_, 1) for $fs .. $fs + $l - 1;
} else { # There's a risk of overwriting if $_[0] and $_[2] are the same SV.
vec($_[2], $_ + $step, 1) = vec($_[0], $_, 1) for reverse $fs .. $fs + $l - 1;