in reply to Re^4: return if defined
in thread return if defined

There's nothing really wrong with indenting apart from making your code narrower. (This split personality adheres to the 80-character-per-line rule.) Excessive indentation, however, is a code smell to me. I usually accept about four levels: one for the function, two for a nested loop, and the last one for a potential if block inside the loop. Anything more and I try to break it into smaller functions. (And I just habitually minimise indentation as I feel it makes it easier to follow the overall logic.)

Replies are listed 'Best First'.
Re^6: return if defined
by tobyink (Canon) on Dec 20, 2012 at 14:14 UTC

    There's an easy solution to that: ;-)

    package Foo { sub foo { ...; while (my $row = $st->fetchrow_array) { ...; for my $value (split /,/ $row->[3]) { if ($value == 0) { ...; while (not $finished) { ...; if ($happy) { $finished++; if (@complaints) { while (defined(my $c = shift @complaints)) { ...; } } } } ...; } } } ...; } }
    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'