naPOLeon wrote:
> Hello,
> I'm a just beginner to ruby and impressed by the possibility to test
> code in irb. Today I wrote a line of code in irb and it behaved as I
> expected. But when I inserted it in my program and executed with ruby,
> the code-block didn't worke. Maybe you could tell me why.
>
> The line
>
> a.scan(reg_exp).each {|w| print "#{w.to_s}: "

w is already a string.

>             ; a.sub!(reg_exp,
> gets.chomp)}

To me, it doesn't make sense to change the string
while you are scanning it.

Try this:

a = "foo <trew> bar <tich>"
reg_exp = /<\w*>/
a.gsub!(reg_exp) { |w| print "#{w}: "; gets.chomp }

p a


>
> It asked me in irb depending on the size of 'a' for some input and
> replaced a part (I used the Regular Expression /<\w*>/) of the string
> 'a' with my input.
> But if I use this line in a program, the part 'gets.chomp' seems to be
> ignored. The result is no change on String 'a'.
>
> I've no explanation for this strange behaviour, I hope you can give me
> a hint. Maybe the whole line is rubbish and there is a lot better way
> to do the job?
> 
> Thanks,
> naPOLeon