デフォルト値を設定した変数があり、それに対して手順を実行します。問題は、ブロックには独自の変数スコープがあり、外部へのアクセスがないため、ブロック内の変数にアクセスできないことです。ここにスニペットがあります:
value = ""
cmd_errors = Array.new
# Call the command line
status = POpen4.popen4(cmd) do |stdout, stderr|
output = stdout.read
error = stderr.read
if (!output.empty?)
value = JSON.parse(output) #This just creates a block scoped variable called 'value' and my local variable is still empty
else
cmd_errors << error
end
end
ブロックがそのローカル変数に書き込むことを許可することは可能ですか? おそらく参照を使用していますか?