Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Re: out of loop

by indigo (Scribe)
on Mar 31, 2001 at 02:59 UTC ( #68539=note: print w/replies, xml ) Need Help??


in reply to Re: out of loop
in thread out of loop

Actually, I do this all the time:
eval { for my $file (@files) { open FILE, $file or die 'Cannot open file'; ... } }; warn 'Could not process all files' if $@;

Replies are listed 'Best First'.
Re (tilly) 3: out of loop
by tilly (Archbishop) on Mar 31, 2001 at 20:57 UTC
    I sincerely hope that you change this habit.

    Now.

    Do you like starting debugging without having a clue which file you had problems on, or what helpful information was in $!? How about your co-workers?

    For these reasons and more, this is something that I feel extremely strongly on. I do not like working with code written by people who did not understand that this matters. I do not want to depend on people who do not appreciate this. Not knowing that trying to trap good error messages is important is one thing, but refusing to learn is a fireable offence in my books.

    (And yes, the strength that I put into that statement does reflect a few very miserable late nights that I do not want to repeat. Ever.)

      This was an illustrative snippet, to show how die could used to exit a loop. As such, I simplified a number of things, like no shebang, no use strict, not all the variables are initialized, and yes, limited error handling.

      Had this been a real program, it would have used my home grown alarm object, which checks $!, $?, and $@, builds a meaningful error string, logs it to a file with a timestamp, sends email, and dies as necessary. This same object I proselytize within my company, much the same way you are doing now.

      Had I included all that extraneous detail in my post, I fear the point would have been lost. And given it was essentially a "by the way" post, it would have required more effort than warranted to make it as explicit as you might like.

      So while I understand the reasons for your strongly stated response, I believe it misplaced.
        Couldn't you have just included an example snippet of what it would have looked like and then just included a note that the object you called here is a home-built error-reporting mechanism?

        I find that people learn style from what are meant as off-hand snippets, and so I think it is important that everything from pseudo-code on up always at least acknowledge the importance of testing for and dealing with errors. I would prefer that people think, Geez, that tilly is anal about error checking! than accidentally encourage (if only by omission) people to neglect it...

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2020-10-27 18:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (257 votes). Check out past polls.

    Notices?