Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
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 wandering the Monastery: (9)
As of 2015-07-07 01:04 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 (86 votes), past polls