There's more than one way to do things | |
PerlMonks |
Re: Unexpected behavior with "map"by TomDLux (Vicar) |
on Mar 13, 2014 at 03:14 UTC ( [id://1078116]=note: print w/replies, xml ) | Need Help?? |
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.
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 Section
Seekers of Perl Wisdom
|
|