No, no es así.
use utf8; sirve para indicar a Perl que
ese programa está escrito en esa codificación (es decir, que
dentro del código del programa, hay caracteres codificados en utf-8).
NO quiere decir que la entrada y/o la salida del programa sea en esa codificación. Perl seguirá trabajando en codificación ISO-8859-1 (latin1 o Windows 1252) con las entradas y salidas.
Si quieres que las salidas sean con codificación utf-8 pues hay que indicarlo de forma expresa.
Por favor, repasa el hilo
44 recetas para trabajar con Unicode en Perl, sobre todo las recetas 15 y siguientes. Quizás, con un simple
use open qw(:std :utf8);podría ser más que suficiente.
Pero aún hay más...
No vale solo con que la salida vaya codificada en UTF-8. Dices que estás usando navegadores web, así que podemos pensar que lo que estás viendo es la salida de un programa Perl en un navegador web (lo que es un CGI, por ejemplo). Bueno, entonces estamos hablando de que la salida es una página codificada en HTML...
Bueno, pues en la cabecera HTML hay que indicar en qué está codificada esa página. Si está en UTF-8, en la cabecera (<head>) del HTML debe aparecer esto:
<meta charset="UTF-8">en caso de estar generando HTML v5. Para HTML v4 usar esto otro:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">Por otra parte, si el servidor web es tuyo o está bajo tu control, puedes configurarlo para que incorpore la codificación UTF-8 en las cabeceras de respuesta HTTP, por lo que los navegadores aplicarán la codificación para todo lo que reciban. Bastaría con añadir
AddDefaultCharset UTF-8en un archivo .htaccess local o en la definición del dominio (todo esto para el caso de un servidor Apache).
Más información