my $is_code = ! blessed($code) ? ref($code) eq 'CODE' : $code->can('&{}') || $code->isa('CODE') # arguably not a good test (bless {}, 'CODE') || eval { defined &$code }; # arguably bad because it gets called in some contexts