So can someone elaborate on why the above split operation on
captured regexp results seems
to bugger up the other captured results? Does this issue
extend to *any* operation on
captured regexp results?
That's what you get for using the (thread-local) global variables that
change with each regexp operation.
Regexp.match returns a MatchData object that will allow you to save your
results from a previous operation and not have them changed by later
code.
See the $~ variable,
http://phrogz.net/ProgrammingRuby/tut_stdtypes.html#objectorientedregula
rexpressions
and
http://phrogz.net/ProgrammingRuby/ref_c_matchdata.html
···
From: Paul van Delst [mailto:Paul.vanDelst@noaa.gov]
Gavin Kistner wrote:
From: Paul van Delst [mailto:Paul.vanDelst@noaa.gov]
So can someone elaborate on why the above split operation on captured regexp results seems to bugger up the other captured results? Does this issue extend to *any* operation on captured regexp results?
That's what you get for using the (thread-local) global variables that
change with each regexp operation.
Regexp.match returns a MatchData object that will allow you to save your
results from a previous operation and not have them changed by later
code.
Hello,
I agree with what you're saying. I actually have already switched to MatchData objects rather than the $-variables -- for all the usual reasons.
So, while my initial question may be less interesting now (since I have working code), I'm still curious why in the statement
arrayList<<{"type"=>$1,
"param"=>$2,
"dimlist"=>$3.split(/\s*,\s*/),
"name"=>$4,
"description"=>$5}
operation on $3 modifies $4 and $5? (And, similarly, operation on $1 would "clear" $2 to $5)
Based on your first sentence, I guess I have an updated question:
Does using the split method on a $-variable count as a "regexp operation"?
cheers,
paulv
···
--
Paul van Delst Ride lots.
CIMSS @ NOAA/NCEP/EMC Eddy Merckx
Ph: (301)763-8000 x7748
Fax:(301)763-8545