Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Re: Regex Misuse

by kal (Hermit)
on May 14, 2001 at 14:51 UTC ( #80178=note: print w/ replies, xml ) Need Help??


in reply to Re: Regex Misuse
in thread Regex Misuse

I thought it was funny how he first labelled one way of doing things as a 'mistake', and then proceeded to make the 'mistake' himself:

if ($text =~ m/\.txt$/)

Why not use substr ($text, -4, 4); to extract the .txt, and then eq to compare it?

The reason is, of course, that we write code for readability, not efficiency, for the most part. See "obfuscation" :)


Comment on Re: Re: Regex Misuse
Select or Download Code
Replies are listed 'Best First'.
Re: Re: Re: Regex Misuse
by srawls (Friar) on May 14, 2001 at 23:46 UTC
    Well, what I said was that
    m/.{$width}/
    could be better written with substr, and still be readable. I have seen from replies to my post that unpack is better yet. I just made the $text =~ /\.txt$/ regex example up as I was writing the post, so it my not be the best, but the point I wanted to get at is if you don't need to match the whole string, then don't. For example:
    $text =~ m/.*$endPat$/
    can be better written (and still readable) as:
    $text =~ m/$endPat$/
    And as you have pointed out, the above code can be written this way (much less readable, I wouldn't recomend using this)
    substr($text,0-length($endPat)) eq $endPat
    On a last note, I never said it was a mistake not to use subst(), I just wanted to point out that in some cases it is better than using a regular expression.

    The 15 year old, freshman programmer,
    Stephen Rawls

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://80178]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (13)
As of 2015-07-31 20:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (281 votes), past polls