in reply to What is wrong here (Replacing Strin pieces)

The -+ matches all dashes at the start/end of the string, but you're replacing them with a single ?. You need to stuff in as many question marks as there were dashes. One way out of many, using eval (/e):

use 5.012; my $string = "---------xxxxxxxxxxxxxxx------yyyyyyyyyyyyyy--------"; say $string; $string =~ s/(\A\-+|\-+$)/'?' x length $1/eg; say $string;

Output:

---------xxxxxxxxxxxxxxx------yyyyyyyyyyyyyy-------- ?????????xxxxxxxxxxxxxxx------yyyyyyyyyyyyyy????????

Replies are listed 'Best First'.
Re^2: What is wrong here (Replacing Strin pieces)
by Anonymous Monk on Jul 16, 2013 at 11:40 UTC
    Thank you! I replaced with with only one ?, didn't think of that! I will also study the perlintro again. A long way to wisdom ;)