On Wednesday 14 Apr 2010 02:35:50 Mimi Cafe wrote:
> I think this will work, but is it elegant.?
> 
> 
> 
> If (condition){
> 
>    if (nexted_condition){
> 
>       do this.
> 
>    }
> 
>    Elsif (nexted_condition){
> 
>       Do that...
> 
>    }
> 
>   else{
> 
>     Do something else.
> 
>   }
> 
> 
> 
> }
> 
> else{
> 
>    Do something else..
> 
> }
> 

As other people noted, it will work - you can nest if/elsif/else's (and other 
flow-control constructs) arbitrarily. However, as Martin Fowler notes in his
book "Refactoring" ( http://www.refactoring.com/ ) long functions or methods 
are a code smell which indicates that one should extract one-or-more functions 
out of them. So if you have an inner conditional, consider extracting it into 
a function. Often after you have such a function, you can use 
<< return COND() ? TRUE_VAL() : FALSE_VAL() ; >> which can avoid further 
clutter. Or you can consider using a dispatch table like Uri suggested.

I admit I often write quick-and-dirty code that has some levels of nested 
constructs (primarily in mostly standalone scripts or programs) but it's 
better to refactor them into smaller subroutines for more serious stuff.

Regards,

        Shlomi Fish

-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
Why I Love Perl - http://shlom.in/joy-of-perl

Deletionists delete Wikipedia articles that they consider lame.
Chuck Norris deletes deletionists whom he considers lame.

Please reply to list if it's a mailing list post - http://shlom.in/reply .

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to