В перле нет компиляции ни до 5.12 ни после. То что вы называете компиляцией лишь стадия лексического разбора и формирования ast дерева в памяти а затем его линеаризация и оптимизация. Рантайм его интерпретирует.
«Компайл тайм» блоков begin, к компиляции никакого отношения не имеет. Это лишь одна из двух фаз исполнения линейного кода (одновременно с парсингом). В перле можно в рантайме менять любые коды (вплоть до произвольной части любого экспрешена любой функции (из самого языка этого интерфейса нет)). Ровно потому что коды никуда не компилируются) они лишь представляются в виде линеризованного списка неких структур.
Ну как это "никуда", когда результат компиляции может быть сохранён в .pmc? А "менять в рантайме любые коды" можно хоть на ассемблере (привет, полиморфные вирусы), хотя "интерфейса нет"