Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: Perl Best Practices book: is this one a best practice or a dodgy practice?

by TheDamian (Priest)
on Sep 03, 2005 at 04:56 UTC ( #488855=note: print w/ replies, xml ) Need Help??


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.


Comment on Re^2: Perl Best Practices book: is this one a best practice or a dodgy practice?
Re^3: Perl Best Practices book: is this one a best practice or a dodgy practice?
by mikeraz (Friar) on Sep 09, 2005 at 14:38 UTC

    My copy is at home, as is my co-worker's copy. Hopefully I'm not saying something fundamentally stupid here.

    Perhaps the solution to this entire muddle is to have as the first line of commentary after that best practice read:
    Allowing the same name ensures your program will operate correctly when users, inevitably, do specify the same filename. Be Prepared, as the teach Boy Scouts 1.

    1 If you have trouble remembering the Scout's famous motto, seek out the Tom Lehrer recording and have that song play through your head while coding.

    Be Appropriate && Follow Your Curiosity

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://488855]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (9)
As of 2015-07-06 08:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (70 votes), past polls