Beefy Boxes and Bandwidth Generously Provided by pair Networks Bob
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^2: Use of "die" in OO modules

by roman (Monk)
on Jan 21, 2007 at 07:44 UTC ( [id://595759]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to Re: Use of "die" in OO modules
in thread Use of "die" in OO modules

DBI is a module with a very wide audience. So there may be a reason why to support the behaviour of RaiseError = 0. But I with newly developed in house module I don't see any.

I'm going crazy (and rude) when I see my colleagues to write their code like this:

my $dbh = DBI->connect($data_source, $username, $password, \%attr) or +die $DBI::errstr; ... my $sth = $dbh->prepare(...) or die $DBI::errstr;

Why rude? Because

  1. There is usually (always) nothing to do if the DBI method fails but die. So why to bother with return value and clutter you code with unnecessary die
  2. If there would be something to do (probability 0.001%) writing the eval block is as easy as checking the value returned.

And why they write their scripts this way? Because they saw it in DBI perldoc.

This should be probably a topic of a new meditation but that is how the whole Perl works. You start with "There is more than one way how to do it" and then you will need the very clever (no irony) "Perl Best Practices" book to tell you that all the ways but one are wrong.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://595759]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.