Hi,
Using RegExp I'd use the following (here @stash represents the layers):
use strict;
use warnings;
my $needed_ys = 7;
my $str = 'Why do you need 7 ys when cll you hve re as and cs';
my $orig = $str;
my @stash = qw(a c);
my @existing = $str =~ /y/g;
my $missing = $needed_ys - @existing;
foreach my $letter (@stash) {
while ( $missing > 0 ) {
last unless $str =~ s/$letter/y/;
$missing -= 1;
}
}
print 'Original: ', $orig, "\n";
print 'Result: ', $str, "\n";
|