2013-09-03 2 views

ответ

6

В соответствии с Perl документации my, я думаю, что вы ищете что-то, как показано ниже в Ruby: - ​​

x = 123 
p = Proc.new {|;x| 
    x = 'I do not want change the value of the outer x, I want to create a local x' 
} 
p.call 
# => "I do not want change the value of the outer x, I want to create a local x" 
x # => 123 
1

Осторожно! (Связанный, хотя и не точно, что вы просите ...)

Правила изменения области изменяются между 1,8 и 1,9. См Variable Scope in Blocks

x = 100 
[1,2,3].each do |x| 

ведет себя по-разному в разных версиях. Если вы объявите переменную в блоке || который имеет то же имя, что и переменная вне блока, а затем в 1.8 изменит значение внешней переменной, а в 1.9 - нет.

Смежные вопросы