On Dec 14, 2006, at 3:05 PM, Michael G Schwern wrote:
Matisse Enzer wrote:sub complexity_of_six { my $bar = shift; my $total = 0; my $type = ref $bar; if ( ! $type ) { $total = $bar; } elsif ( $type eq 'ARRAY' ) { foreach my $baz ( @{$bar} ) { $total += $baz; } } else { confess("Don't know how to handle refs to $type"); } return $total; }I'm missing something, I only count 3 paths. if, elsif and else. The confess() might count (die/throw exception) but its the only path through the else. Same with the loop, its the only path through the elsif.
I over-simplified my explanation. It's not exactly paths-through-the- code.
The complexity "points" in that example are: 1 for the subroutine itself. 1 for the "if" 1 for the ! logic operator in the if condition 1 for the elsif 1 for the "ne" logic operator in the elsif condition 1 for the else ---- 6 total ------------------------------------------------------- Matisse Enzer <[EMAIL PROTECTED]> http://www.matisse.net/ - http://www.eigenstate.net/
