Michael G Schwern <[EMAIL PROTECTED]> writes:
> On Sun, Dec 16, 2001 at 02:41:31PM +0000, Piers Cawley wrote:
>> > The equivalent code without isa_ok() would be:
>> >
>> >     my $foo = Foo->new;
>> >     ok( $foo->isa('Foo') );
>> >
>> > except should $foo be unblessed or undef that will explode.  You have
>> > to start doing things like:
>> >
>> >     my $foo = Foo->new;
>> >     ok( defined $foo && $foo->isa('Foo') );
>> >
>> > which rapidly gets tiresome.  It also provides you little information
>> > about what value $foo held that caused it to fail.
>> 
>> What's wrong with 
>> 
>>     ok ( eval { $foo->isa('Foo') } );
>>
>> or even:
>> 
>>     ok (eval { ref($foo) && $foo->isa('Foo') });
>
> As Kurt already pointed out, you can do:
>
>     ok( UNIVERSAL::isa($foo, 'Foo') );
>
> but if it fails you have no idea what $foo was.

No you can't. Not if you've overridden isa anywhere. (Which is
perfectly possible.)

-- 
Piers

   "It is a truth universally acknowledged that a language in
    possession of a rich syntax must be in need of a rewrite."
         -- Jane Austen?

Reply via email to