Dan Webb
10/28/2008 1:54:00 PM
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:shortcutter@googlemail.com]=20
Sent: 28 October 2008 13:32
To: ruby-talk ML
Subject: Re: Quick Scope Question
2008/10/27 David A. Black <dblack@rubypal.com>:
> Hi --
>
> On Tue, 28 Oct 2008, Daniel Malcolm Webb [dbw] wrote:
>
>> 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