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. Also... sub foo { if( ... ) { ... } else { ... } return ... } Complexity of two or three? I count only two possible paths.