in reply to Style question: symref or eval?

Actually, another good way to go is a dispatch table... a hash of keys being the names of your subroutines and the values being references to those subs...
my %dispatch = ( test1 => \&test1, test2 => \&test2, etc.. ); if(exists $dispatch{$op}) { $dispatch{op}->($arg); }
that may not be exactly right, but it gives the idea...

also, you can check the definedness of subroutines...

if(defined &$op)
but most people would cringe at this being a symbol table lookup.... dispatch table is a very common way to go about this...

                - Ant
                - Some of my best work - Fish Dinner