$ perl -Mstrict -Mwarnings -E ' my $string = "---------xxxxxxxxxxxxxxx------yyyyyyyyyyyyyy--------"; $string =~ s/^(-*)(.*?)(-*)$/"?" x length($1) . $2 . "?" x length($3)/e; say $string; ' ?????????xxxxxxxxxxxxxxx------yyyyyyyyyyyyyy????????