Yuval Kogman wrote:
BTW, pure perl blessed() will work:

        sub UNIVERSAL::a_sub_not_likely_to_be_here { ref($_[0]) }

        sub blessed ($) {
          local($@, $SIG{__DIE__}, $SIG{__WARN__});
          length(ref($_[0]))
                ? eval { $_[0]->a_sub_not_likely_to_be_here }
                : undef
        }

<http://search.cpan.org/src/GBARR/Scalar-List-Utils-1.19/lib/Scalar/Util.pm>

I predict that the next anti duck perl idiom is going to be:

        eval { $x->UNIVERSAL::can("can") }

to determine "true blessedness"

Actually, isn't UNIVERSAL::can($x, 'can') still valid? I seem to remember that at one point it was considered the only valid use of UNVERSAL::can directly.

Adam K

Reply via email to