use UNIVERSAL 'isa'; sub explode { map ref $_ ? explode( isa( $_, 'HASH' ) ? keys %$_ : isa( $_, 'ARRAY' ) ? @$_ : isa( $_, 'CODE' ) ? $_->() : isa( $_, 'SCALAR' ) ? $$_ : isa( $_, 'REF' ) ? $$_ : $_ ) : $_, @_; }