Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: out of loop

by MeowChow (Vicar)
on Mar 31, 2001 at 02:27 UTC ( [id://68532]=note: print w/replies, xml ) Need Help??


in reply to out of loop

This will also do the trick:
while ($foo) { die if $bar; ... } # just kidding :)

Replies are listed 'Best First'.
Re: Re: out of loop
by indigo (Scribe) on Mar 31, 2001 at 02:59 UTC
    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 $@;
      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.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2024-04-25 06:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found