http://www.perlmonks.org?node_id=136115


in reply to Why I Hate Nested If-Else blocks

Bravo! ++.

This sounds very much like a call to think through one's designs first. (You do design, right?) Laying out the branches on paper is a very good way of doing this.

Of course, there are some gotchas. For example, the place I'm at right now has a lot of legacy code that uses the form

sub foo { my $self = shift; if (ref $self) { # Do stuff return $some_useful_value; } else { # Complain return undef; } }
This is vs. the (to me) more intuitive
sub foo { my $self = shift; unless (ref $self) { # Complain return undef } # Do stuff return $some_useful_value }
*blinks* I guess I just proved your point, huh? :-)

------
We are the carpenters and bricklayers of the Information Age.

Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.