Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^6: using hashes

by R56 (Acolyte)
on Sep 27, 2013 at 13:26 UTC ( #1055979=note: print w/ replies, xml ) Need Help??


in reply to Re^5: using hashes
in thread iterating hash keys?

Is there a simple way to also contemplate names with hyphens on the middle?


Comment on Re^6: using hashes
Re^7: using hashes
by kennethk (Monsignor) on Sep 27, 2013 at 15:41 UTC
    Hyphens aren't special outside of a character class. What makes you think they are at fault?

    If your 'words' might contain punctuation, you can escape meta characters using quotemeta or synonymously \Q .. \E

    s/\b\Q$find\E\b/$replace/g

    #11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.

      Imagine these values:

      banana => 25

      bana => 20

      bana-na => 15

      na => 10

      For the translation to, let's say:

      bana-na,banana

      Currently the output is:

      20-10,25

      That's what made me thought the hyphens were a special case...

        No, but they are being marked as word boundaries, and so they pass the regex I gave before. For the situation you've described, the only obvious solution I can see is to traverse the key list from long to short as I've shown in Re^5: using hashes. Things get messy with replacement lists when your keys are not independent.


        #11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2014-12-25 14:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (160 votes), past polls