En mi módulo, Tengo este código:
croak("unable to parse file: $!");
Entonces, en mis pruebas, quiero comprobar que consigo el mensaje de error correcto cuando intento analizar un archivo que no existe:
like(
exception { HTML::Tree->new_from_file("t/non_existent.html") },
qr!^unable to parse file: No such file !,
"opening missing file failed"
);
Esto funciona bien, siempre que las pruebas se ejecuten en una configuración regional en inglés. Pero si ejecuta las pruebas en una configuración regional alemana, el mensaje de error volverá unable to parse file: Datei oder Verzeichnis nicht gefunden
y la prueba falla. Otras configuraciones regionales tienen problemas similares.
No puedo creer que sea la primera vez que esto ocurre, pero no encuentro ningún módulo en CPAN que resuelva este problema. ¿La gente simplemente nunca prueba la parte $!
del mensaje de error? ¿Hay una solución mejor que cambiar la prueba para verificar solo qr!^unable to parse file: !
?
Nota: esto es RT#77823 in HTML-Tree.
Sería mucho menos útil tener solo el número, pero supongo que podría incluir el número y la versión de cadena. El otro problema es que no se garantiza que ENOENT tenga el mismo valor numérico en cada sistema. Parece que debería haber una solución mejor que esta. – cjm