Thanks Robert,=20
eventually managed another work around similar to yours. The Q/q was
indeed a typo that didn't make it into the final code. Help is
appreciated though
Kind Regards,
Dan
-----Original Message-----
From: Robert Klemme [mailto:
[email protected]]=20
Sent: 28 October 2008 13:32
To: ruby-talk ML
Subject: Re: Quick Scope Question
2008/10/27 David A. Black said:
Hi --
Q_txt =3D res_q[0][1]
(0..10).each do |qt|
question_text =3D q_txt.scan(/\w+/)[qt]
end
when I access question_text after, obviously it's out of scope what am I
missing here?
Not what you asked for, but: "Q_txt" !=3D "q_txt". Also, you should do
the scan only once - this is more efficient:
texts =3D res_q[0][1].scan(/\w+/)
texts.each_with_index do |question_text, qt|
...
end
Blocks have a kind of one-way valve local scope. Variables that
already exist before the block will exist in the block. Variables that
are created in the block do not survive past the block.
Which is basically the same in many modern programming languages,
isn't it? Of course, there are some subtleties (e.g. whether
shadowing of more local definitions is allowed etc.).
Kind regards
robert
--=20
remember.guy do |as, often| as.you_can - without end