Ich habe eine sehr häufige Situation. Ich habe eine Datei, und ich muss diese Datei vollständig mit neuen Inhalten überschreiben. Auf die Originaldatei wird jedoch bei jedem Laden der Seite zugegriffen (dies ist eine Web-App), daher kann sie nicht sehr lange fehlen. Ein paar ms ist OK (obwohl nicht ideal), eine Sekunde ist nicht OK.Was ist der beste Weg für eine plattformübergreifende, atomare Dateiersetzung in Perl?
Jetzt mache ich dies, indem ich eine temporäre Datei in dasselbe Verzeichnis schreibe und dann diese temporäre Datei in den Namen der neuen Datei umbenenne. Ich verwende nur die normale Datei :: Temp und "Umbenennen", um dies in Perl zu tun. Ich habe mich gefragt - gibt es einen anderen empfohlenen/besseren Weg, dies zu tun? Vorzugsweise eine, die kein CPAN-Modul benötigt, da dies die einzige Stelle in meinem System ist, die ich dazu brauche, und ich möchte nicht nur eine ganz neue Abhängigkeit dafür haben.
Oh, und all dies muss unter Windows, Linux, BSD, OS X, Solaris und den meisten anderen gängigen Plattformen funktionieren.
Here is the code in question, für diejenigen interessiert.
Nun, möglicherweise nur eine Bestätigung, dass dies wirklich der beste Weg ist. :-) Ich habe mich meistens gefragt, ob es eine andere besonders empfehlenswerte Methode gibt, da ich sowieso den betreffenden Code angeschaut habe (um einen Bug zu beheben) und ich dachte mir, dass es jetzt ein guter Zeitpunkt wäre, ihn zu verbessern . :-) –
Die Bewegung ist atomar, also ist das ein guter Weg. – Danny