Задача специфическая, тем не менее на ней удалось хорошо сэкономить на хранение повторяющихся строк.
Предположим, есть пару сотен фиксированных строк и десятки тысяч объектов, которым нужно хранить в себе массив, составленный из строк из этого набора. Пробовал сперва COW, но он имеет ограничение на количество ссылок, дойдя до лимита (255, кажется) при присвоении создается уже копия. В XS есть newSVpvn_share: позволяет поместить строку ключом во внутренний перловый хеш. При копировании такой строки копии создаются без ограничений, а также строка содержит рассчитанный хеш-код, что ускоряет поиск в хешах. Мне удалось сэкономить по 60 МБ с процесса, даже не спуская данные в XS.