По умолчанию драйвер Perl / MySQL обрабатывает двоичные данные (по крайней мере, я сделал это из некоторых экспериментов с MySQL 5.1 и 5.5).
Без установки mysql_enable_utf8 я кодировал / декодировал строки в / из UTF-8 перед записью / чтением в / из базы данных.
Не следует полагаться на представление строки внутри perl в виде массива байтов; имейте в виду, что внутренний utf8 не гарантированно является стандартом UTF-8; и наоборот, гарантируется, что однобайтовая кодировка не будет соответствовать ISO-8859-1; действительно кодировать / декодировать в / из UTF-8 (а не 'utf8').
Есть также некоторые настройки MySQL (например, SET NAMES выше, насколько я помню, есть кодировка клиента, кодировка соединения и кодировка сервера, чьи взаимодействия мне не совсем понятны, если они не все имеют то же значение) относительно кодировок; установка всех их в UTF-8, и рецепт выше, работал для меня.