Tengo una situación muy común. Tengo un archivo y necesito sobrescribirlo por completo con nuevos contenidos. Sin embargo, se accede al archivo original en cada carga de página (esta es una aplicación web), por lo que no puede faltar por mucho tiempo. Unos pocos ms está bien (aunque no es ideal), un segundo no está bien.¿Cuál es la mejor manera de hacer un reemplazo de archivos atómicos multiplataforma en Perl?
Ahora hago esto escribiendo un archivo temporal en el mismo directorio y luego cambiando el nombre de ese archivo temporal al nombre del nuevo archivo. Solo estoy usando File :: Temp normal y "rename" para hacer esto, en Perl. Me preguntaba: ¿hay alguna otra forma recomendada/mejor para hacer esto? Preferiblemente uno que no requiere un módulo CPAN, ya que este es el único lugar en mi sistema que necesito para hacer esto, y no quiero una dependencia completamente nueva solo para esto.
Ah, y todo esto tiene que funcionar en Windows, Linux, BSD, OS X, Solaris y en la mayoría de las otras plataformas comunes.
Here is the code in question, para aquellos interesados.
Bueno, posiblemente solo una confirmación de que esta es la mejor manera. :-) Principalmente me preguntaba si había alguna otra manera particularmente recomendada de hacerlo, ya que de todos modos estaba buscando el código en cuestión (para arreglar un error) y pensé que sería un buen momento para mejorarlo si fuera necesario. . :-) –
La operación de movimiento es atómica, por lo que es un buen camino a seguir. – Danny