in reply to Re^3: Is "ref($class) || $class" a bad thing?
in thread Is "ref($class) || $class" a bad thing?

I'm surprised nobody has mentioned called_as_method from Devel::Caller.

use Devel::Caller qw( called_as_method ); sub new { croak "must call new as method" unless called_as_method(0); ... };

Replies are listed 'Best First'.
•Re^5: Is "ref($class) || $class" a bad thing?
by merlyn (Sage) on Jul 20, 2004 at 13:32 UTC
    I'd consider that "a bit too much navel inspection". It breaks code I write that looks like this:
    my $destiny = $someobject->can("somemethod"); @_ = ($someobject, @args); goto &$destiny;
    There shouldn't be any way that this target method should be able to tell that I got there with ->can instead of a true method lookup. So if you write code that breaks that, shame on you.

    -- Randal L. Schwartz, Perl hacker
    Be sure to read my standard disclaimer if this is a reply.

      I'd consider that "a bit too much navel inspection"

      Oh I agree completely (I said I was surprised that nobody had mentioned it - not that it was a good idea :-)

      It breaks code I write that looks like this:

      ++ Good point.