Es muy posible que el error esté en las barras inclinadas ('/') que aparecen en los nombres de agente, haciéndole creer al open() de que se tratan de nombres de directorios, en lugar de formar todos juntos el nombre de un fichero.
Una forma obvia de resolverlo sería eliminar los caracteres extraños, pero si lo que se quiere es crear ficheros con la máxima semejanza a los nombres de agente de usuario, lo que podemos hacer es "escapar" el significado de esos caracteres.
Una forma rápida de probarlo sería con:
Using perl Syntax Highlighting
open (F,">>", "\Q$archivo\E.html") or die "Couldn't open: $!";
La secuencia de escape "\Q" hace un escapado de todos los caracteres que no son "caracteres de palabra", hasta la secuencia de escape "\E" o el final de la cadena.
Más información en
perldoc perlop, sección
Quote and Quote-like Operators.