Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Regex Misuse

by jepri (Parson)
on May 14, 2001 at 11:41 UTC ( #80157=note: print w/ replies, xml ) Need Help??


in reply to Regex Misuse

The goal was to extract $width amount of characters from a variable. More experienced programmers are shaking their heads right now, they know it would be much more efficient to use this: substr($someVar,$offSet,$width)

And unpack would be even better yet.

____________________
Jeremy
I didn't believe in evil until I dated it.


Comment on Re: Regex Misuse
Re: Re: Regex Misuse
by kal (Hermit) on May 14, 2001 at 14:51 UTC

    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" :)

      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://80157]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2014-08-02 05:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who would be the most fun to work for?















    Results (54 votes), past polls