Global variable -- last expression

Hi,

In IRB the last expression is in _ . But if you are in a ruby program
how to get the last expression.

Thanks
Basha

Steve K. wrote in post #1027862:

$_ ?

It stores the last gets not the last expression return…

On Oct 21, 2011, at 5:34 PM, basha c. wrote:

In IRB the last expression is in _ . But if you are in a ruby program
how to get the last expression.

You assign it to a variable:

value = 1 + 1

puts “the value was #{value}”

On Sat, Oct 22, 2011 at 10:48:00AM +0900, Eric H. wrote:

On Oct 21, 2011, at 5:34 PM, basha c. wrote:

In IRB the last expression is in _ . But if you are in a ruby program
how to get the last expression.

You assign it to a variable:

value = 1 + 1

puts “the value was #{value}”

Mightn’t that lead to some “shallow copy” problems in some cases?

On Oct 21, 2011, at 7:46 PM, Chad P. wrote:

Mightn’t that lead to some “shallow copy” problems in some cases?

No more than in IRB.

Eric is right. IRB just sets _ as a variable.

In “irb/context.rb” you’ll find:

162: def set_last_value(value)
163: @last_value = value
164: @workspace.evaluate self, “_ = IRB.CurrentContext.last_value”
165: end

Take a look at line 164, _ is set right there.

-Dane