Вот еще одно решение для удовольствия:
В Perl substr () может быть lvalue, который может помочь в вашем случае.
substr ($num , -3 , 0) = '.';
добавит точку перед последними тремя цифрами.
Вы также можете использовать версию substr с четырьмя аргументами (как указано в комментариях), чтобы получить тот же эффект:
substr( $num, -3, 0, '.' );
Я надеюсь, что это более элегантно / читабельно, чем решение регулярных выражений, но я уверен, что оно отбросит любого, кто не привык к substr (), используемому в качестве lvalue.