Scalar::UtilとList::UtilにはXSで書かれたルーチンがあります。例えば、1〜10をランダムに並び替えたいなら、shuffleを使いましょう。
print join(' ', List::Util::shuffle(1 .. 10)), "\n";
後、使う機会は滅多にないかもしれないけど、こんなのもあります。
my $dual = Scalar::Util::dualvar(100, "500");
printf("%d and %s\n", $dual, $dual);
文字列と数値を別々に持つスカラを作れるっぽいです。うひゃあ。