Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^23: eval to replace die?

by BrowserUk (Pope)
on Oct 09, 2010 at 23:04 UTC ( #864426=note: print w/ replies, xml ) Need Help??


in reply to Re^22: eval to replace die?
in thread eval to replace die?

The value of the change (positive/negative) determined the direction of the change and based on that a css style which is used to colour the message.

First observation, if the only purpose of the parsing is to detect positive or negative--the regex was wrong. A simple $message =~ /-/ would probably suffice, and create parity with your exception solution in as much as you could change the datatype of the value without requiring a change in the exception handling mechanism.

Not that I would advocate that solution, but it demonstrates the contrivance of your example. It conflates two exceptions as one.

The correct solution for the problem of two different possible errors, is to raise the appropriate of two exceptions. One for less; one for more. Each with a different error number. Then there is no purpose in parsing the error; a simple compare takes the appropriate action.

I would like to ask you to look at the original starting post

Out of courtesy, I looked again. And I reached the same conclusions.

Nothing in the OP requires, nor would benefit from, a structured exception. What corrective action could be taken to correct a failure to retrieve a file? None!

The only possible action is to report the error and terminate. Whether it be that the file does not exist;, or has the wrong permission; there is no point in trapping the die, when the only reasonable action is to do exactly what die does. And all to satisfy the scurrilous default from perl-critic.

Recommending moving to using E::C, in order to silence perl-critic, when the only possible action is to (laboriously) emulate exactly what die does, is ...

(*)Did you do me the courtesy re-reading each evolution of my posts, within the context of the posts to which I replied? (Betting not!)


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.


Comment on Re^23: eval to replace die?
Select or Download Code
Re^24: eval to replace die?
by mithaldu (Monk) on Oct 09, 2010 at 23:54 UTC
    Since you are calling me a liar now i'll not bother further with you, save to point out that with your suggestion to use "=~ /-/" you've only added another possibility for the whole thing to break, which is by adding a spurious "-" to the error message, while a structured exception would still work perfectly fine.

      I did not call you a liar. And I didn't make that suggestion.

      And that's been the trouble right the way through. You read what you want to see; not what I wrote.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2014-12-23 05:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (135 votes), past polls