+ if (defined $params) {
+ $params =~ m{
+ \A (?<offset> \d+)
+ (?: (?: [-] (?<stop> \d+) )? (?: [+] (?<restart> \d+) ) )?
+ (?: [-] (?<endpoint> \d+) )? \z
+ }x or Alert([
+ "Unknown range parameters for $input",
+ "<q>$params</q> is not in format start(-stop)(+restart(-end))",
+ ]);
+
+ $row{offset} = $+{offset};
+ $endpoint = $+{endpoint} if $+{endpoint};
+ if (my $restart = $+{restart}) {
+ my $skip = int(($+{stop} || $row{offset}) / $row{cols});
+ for ($skip + 1 .. ($restart / $row{cols}) - 1) {
+ $row{skip}->{ $_ * $row{cols} - $row{offset} }++;
+ }
+ }