原です。

些細なことですが、eval あるいは #{..} による文字列展開は、
例外が起こらなくても $! をリセットする様です。

例外が起こらない場合は値を変えない方がいいのではないでしょ
うか。


それから、eval("") で Segmentation fault を起こす様です。
---===-=-=-=-=-=-=-=-=======--=-=-=-==-=-===-=-=-=-=-=-=--=-==-=--
                            Shin-ichro Hara(Nagaoka Univ.of Tech.)