[Melbourne-pm] nearly there...
Craig Sanders
cas at taz.net.au
Wed Dec 19 21:44:42 PST 2007
On Thu, Dec 20, 2007 at 04:05:05PM +1100, Jacinta Richardson wrote:
> Craig Sanders wrote:
>
> > if it bothers you, then strip out the extras yourself:
> >
> > my $full_path = "$dirname/$entry";
> > $full_path =~ s=//=/=g;
it's wrong (at least, sub-optimal), anyway. should be:
$full_path =~ s=//+=/=g;
> Except, don't use = as your separator. It breaks people's brains.
only if they can't read perl.
i use = (when i don't use /) because it's one of the characters least
likely to appear as a character literal in a regexp also containing /
character literals.
e.g. any regexp containing a literal / (which is why i'm using another
char as the separator, to avoid the unreadable ugliness of lots of \
escaping) is fairly likely to also have : characters ("http://.....")
'=' also has the significant advantage of being visually distinct from
most other characters (no highs or lows, just a horizontally centred
double-bar so it highlights the separation almost like whitespace).
'-' works reasonably well too.
if the regexp has literal = characters too, i'll use something else.
the whole point is to make the regexp more readable.
> Use curly braces instead:
i find that ugly inside regexps, and don't/won't do it. curly braces are
for hashes or code blocks etc, not for uglifying regexps.
i'll use pretty nearly anything else before i'll use them.
> $full_path =~ s{//}{/}g;
the point of using a different separator is to make the regexp more
readable, not less.
YMMV, but to me, that is significantly less readable.
craig
--
craig sanders <cas at taz.net.au>
Perl is designed to give you several ways to do anything, so
consider picking the most readable one.
-- Larry Wall in the perl man page
More information about the Melbourne-pm
mailing list