[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Omaha.pm] Fwd: weird perl bug



On Nov 19, 2010, at 10:40 AM, Jay Hannah wrote:

> Ya, Andy's explanation helped me too. At a glance I had no idea what was going on.  :)
> 
> In array context all the /g matches are slurped out "in one line of code:"

The BIG lesson here is that one should not use flags on regexes if one does not know WHY they are there.  I suspect that the original author had a /g on the regex simply because all of his regexes have them, perhaps because of cut & paste.  This is called cargo culting.

Another classic bit of cargo culting is escaping characters in a regular expression simply because the author fears that it's necessary.  For example, you might be looking for a movie title, "Because of Winn-Dixie", including the quotation marks, in a block of text.  The cargo culter will write that regex like so

    $text =~ m/\"Because of Winn\-Dixie\"/

because he is afraid that " and - have to be escaped in a regular expression.  They do not.

xoa

--
Andy Lester => andy@petdance.com => www.techworklove.com => AIM:petdance