Rubyで外部プログラムの呼び出しに変数を使う

RubyでもPerlとほぼ同様にコマンドの呼び出しができる.こんな感じ.

system("ruby ./hoge.rb")

出力を取得したい場合は``を使う.これもPerlと同じ

output = `ruby ./hoge.rb`

ここからが落とし穴.Perlでは``の中身に変数を使うことが出来た.Rubyはそうはいかない

command = "hoge ./ruby.rb"
output = `command`

こんなことをやろうもんなら,commandが変数なのか文字列なのか判断できない.SigilがついているPerlならそんなことを気にせず変数展開してくれるのにィィィィ.というわけで30分ほど調べた結果,ようやく見つけた解決方法

# 解決策1
command = "hoge ./ruby.rb"
system(command)
output = $?    # systemコマンドの出力は$?に入る

# 解決策2
output = ''
IO.popen(command) do |io|
    while io.gets()
        output << $_
    end
end

目的は達成されたからいいけれど,``でも簡単な解法があるはず.それが見つからないのが癪で仕方ない(いや,自分が悪いんだけどさ,悔しいじゃない).
Rubyユーザって本当に多いのか?と疑問に思ってしまう.