Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: backreference on hash

by MidLifeXis (Monsignor)
on Aug 14, 2015 at 13:24 UTC ( [id://1138580]=note: print w/replies, xml ) Need Help??


in reply to backreference on hash

Careful about using a hash for this, as the keys are unordered order of the keys is undefined. It isn't wrong; it just has the potential for unexpected surprises if order of the replacements is important.

Let's say you have a set of two regexes in your hash: { a => 'b', b => 'c'}. If the 'a' key is used first, you will end up with no 'b' values in your results. OTOH, if the 'b' key is used first, you might (if 'a' exists in the contents of $line).

'abacus' => 'ccccus' # a => b, then b => c 'abacus' => 'bcbcus' # b => c, then a => b

A 'better' solution for this might be an array of arrays (AoA), with the patterns in the order that you wish to apply them: ( [ a => 'b' ], [ b => 'c' ] ), and then stepping through the set of replacements in the expected order.

--MidLifeXis

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2024-04-20 15:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found