почему не назвать директорию первого уровня как ^md5.left(1), а второго как ^md5.mid(1;1)?
если канает, то можно ещё попробовать (в смысле сравнить что быстрее и жрет меньше памяти) такое: $tLevel[^md5.match[^^(.)(.)]], а потом соотв: $tLevel.1 и $tLevel.2