Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
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 surveying the Monastery: (3)
As of 2014-09-21 00:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (165 votes), past polls