http://www.perlmonks.org?node_id=488855


in reply to Re: Perl Best Practices book: is this one a best practice or a dodgy practice?
in thread Perl Best Practices book: is this one a best practice or a dodgy practice?

The problem in this case is not really about whether the program is re-runnable, but about the fact that it corrupts your data.
Neither of which is what the original recommendation is about. That recommendation, as it appears in "Perl Best Practices" is:
In-situ Arguments

Allow the same filename to be specified for both input and output.


And that most definitely is a best practice.

The issue raised here is that one of the two solutions suggested in the book is apparently more limited in applicability than I indicate in the text (a deficiency I have already mentioned that I'll be remedying as soon as I can).

Now it may well be that "Perl Best Practices" would benefit from the addition of an extra guideline; one that suggests using a transactional approach to avoid corrupting data. But that's only peripherally related to this guideline. It should definitely be a separate suggestion, since the problem of data corruption is not unique to opening the same file twice.