in reply to Help making this substitutions on a strin
Just for fun:
use strict; use warnings; my $raw = join '-', 1 .. 30; my @ranges = ([5, 10], [14, 18], [22, 27]); $raw =~ s/(\d+)/(grep {$1 >= $_->[0] && $1 <= $_->[1]} @ranges) ? 'X' +: $1/eg; my @parts = split /((?:-X)+-)/, $raw; my $sub = 'A'; for my $part (@parts) { next if $part =~ /X/; $part =~ s/\d+/$sub/g; $sub = 'A' if ++$sub eq 'C'; } print join('', @parts), "\n";
Prints:
A-A-A-A-X-X-X-X-X-X-B-B-B-X-X-X-X-X-A-A-A-X-X-X-X-X-X-B-B-B
|
|---|