Having regexes like s/\/etc\/// is referred to as Leaning Toothpick Syndrome, aka LTS.
You already know you can use your preferred delimiter with qw; same thing with s///. YOu can even use delimiters that come in pairs, to differentiate the search part from the replace part:
I generally like to move the search string and the replace components out of the regex operation, so the operation is just operating on predefined variables.s{/etc/}{}
my $search_for = qr{/etc/}; my replace_with = qr{}; s{$search_for}{$replace_with}
But in this case, you're dropping a single, identical prefix from all the paths. Perhaps that's simply a contrived example for the post. But in such a situation, I would use substr() to discard the prefix, which I already know the length of. While basename() is a more robust, reliable, portable solution, you could also use rindex to locate the rightmost '/' separator, and use substr to extract what comes after that.
As Occam said: Entia non sunt multiplicanda praeter necessitatem.
In reply to Re: Unexpected behavior with "map"
by TomDLux
in thread Unexpected behavior with "map"
by Clovis_Sangrail
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |