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


in reply to Style or Clarity?

if($tmp eq 'F'){ ; # do nothing, spot held for clarity }elsif($tmp =~ /[MICL]/){ ... # do something ... }else{ ... # do something } }

If you have a few different cases, an if/elsif/else chunk like this one is fine, but if you have a lot of possibilities, you should consider building a dispatch table: fill a hash with subrefs and do something like (untested)

$tmp = $some_result; my $handler = $handlers{$tmp}; &$handler(...) if $handler; # might be undef, as in 'F' case

This has the disadvantage of failing silently if you get an unexpected value in $tmp; you could fix it by giving 'F' a do-nothing subroutine and raising an error if $handler is undefined.

--
F o x t r o t U n i f o r m
Found a typo in this node? /msg me
% man 3 strfry