文字列置換の質問です。

 puts "hoge_mage-fuoo1.2.3".sub(/^(.+)-.+$/,$1)

というのがirbだとうまくいくのですが、ファイルに書いて実行するとエラーになります。

 in `sub': can't convert nil into String (TypeError)

これを解決する代替案はどのようなものがありますでしょうか?