From: Stefan Lang Date: 2006-07-31T07:11:17+09:00 Subject: Re: strange difference between irb and ruby On Sunday 30 July 2006 21:05, 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}: "; a.sub!(reg_exp, > gets.chomp)} > > 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 don't know if this is the problem here, but: "gets" might not do exactly what you think it does... Try changing it to "$stdin.gets". Read: $ ri Kernel#gets That's what you use now... and: $ ri IO#gets That's what you call with $stdin.gets. HTH, Stefan