my @dispatch = ( sub { shift() eq 'a' } => sub { "do something with a" }, sub { shift() == 105 } => sub { "do something with 105" }, ); for (my $i; $i < @dispatch; $i+=2) { $dispatch[$i+1]->() if $dispatch[$i]->($variable); }