Vicki Brown wrote: [snip] ! When I use index it's because I want to know the position of one ! string inside another. When I see index() I conclude that the ! _value_ of the index, i.e. the position of the substring, is ! important. I use index if I want to determine _Where_. ! ! I don't use index() when I simply want to know the truth value (is ! string a contained in string b). When I want to know the latter (and ! I don't care where, only if), I use a pattern match. I use pattern ! matching if I want to determine _If_. I tend to think index() when looking for strings and m// when looking for patterns --- I recall discussions a couple years ago about efficieny differences between m// and index() where m// was unecessarily slower when the pattern was a literal string (it was either fixed or never really a problem, I don't recall), so perhaps the code in question was an attempt (probably misbegotten) to optimize for a most likely case of failure and only drag in the regex engine when necessary. FWIW, I reran Ronald's simple benchmark (under 5.00503) using 'timethese(-10,...)' to run for at least 10 seconds per snippet and found (as opposed to his run) that index() was just marginally faster in both cases: index_l: [snip] @ 36007.09/s (n=360431) index_s: [snip] @ 52871.95/s (n=537179) regex_l: [snip] @ 33362.50/s (n=333625) regex_s: [snip] @ 48539.26/s (n=485878) Not enough to worry about in any case. regards andrew -- Andrew L. Johnson http://members.home.com/andrew-johnson/ The generation of random numbers is too important to be left to chance. ==== Want to unsubscribe from Fun With Perl? ==== Well, if you insist... Send mail with body "unsubscribe" to ==== fwp-request@technofile.org