質問させてください。

Encode.pmがインストールされている環境とそうでない環境とで、プログラム内部で処理を分けようと思っているのですが、なぜかうまく行きません。

$Eflag = eval('use Encode qw/ from_to :fallbacks /; 1');

とやっておいて、

if ($Eflag) {
from_to($_, 'utf8', 'cp932', FB_XMLCREF);
}

という風に処理したいのですが、evalを通したらfrom_toだけだとうまくインポートできるのですが、この書き方だと:fallbacksのほうだけインポートされないようです。
普通にevalを通さないで、use Encode qw/ from_to :fallbacks /;と書いたら正常に動くのですが、これだとEncode.pmのない環境ではコンパイル時エラーが出てしまうので困っています。

ここでevalを通すと、:fallbackはインポートされないのでしょうか?
うまく処理する方法または、これに代わる何かいいアイデア等ございましたらぜひとも教えていただきたく思います。