eval "use $mo"は美しくないなぁ。
これってuse出来るか出来ないかをスクリプトに判断させるときのやり方だと思う。

useはコンパイル時にrequireしろってのと同じだから動的にやるなら
require "$mo.pm";
このとき、文字列の場合.pmが必要で、
名前空間はフォルダに置き換えてスラッシュにしないといけない。
つまり、
$mo = "One::Of::Module";
の場合は
$mo = "./One/Of/Module.pm";
require $mo;
とか。
ひとつのディレクトリに各モジュールが入っているなら
require "./One/Of/$mo.pm";
かな?

>>594にあるようなimportは必要なきゃしなくてイイと思われ。