Me he hecho una función que envía correos. La voy a utilizar para que en caso de que suceda un error en un script me envíe un correo indicándomelo. La función send_mail funciona correctamente.
Mi intención es que si hay un error de lectura/escritura me envíe un correo antes de que muera.
La línea en cuestión es:
Using perl Syntax Highlighting
- open (CSV, $archivo) || &send_mail("Open_fail","Couldn't read $archivo.csv: $!") and die;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
El archivo existe, pero ni lo lee ni envía el correo, simplemente muere.
Según creo haber entendido, el problema está en que perl evalúa primero los and y luego los or.
No se me ocurre la manera de añadirle la orden de die después de enviar el correo sin poner un and.
No puedo (más bien no quiero) acabar la función send_mail con un die porque esta función no sólo la uso para errores que deben detener el script, sino que también me informará de errores “tolerables”.
Digo que no quiero porque, aunque la solución más fácil sería crear dos funciones send_mail, una con die y la otra sin, llevo un rato intentándolo y no lo consigo, y me come la curiosidad.
¿Qué se os ocurre?
Gracias.