is() supresses "Use of uninitalized value" warnings because its useful to do things like:
is( $foo, undef ); which provides more information than ok( !defined $foo ); because if it is defined its nice to know what the value is. Similarly is_deeply() suppresses undef warnings. cmp_ok() and like() also supress undef warnings... well all warnings actually and that's a problem. Not having warnings meant I never noticed things like: cmp_ok( $overloaded_object, '==', 42 ); was actually comparing the stringified version of $overloaded_object and not the numerified version. Since warnings were supressed I never got the "Argument "blah" isn't numeric" warning. It seems pretty clear to me that most warnings should not be supressed. But what about uninit warnings, specificly? Is there any utility to something like: like( $foo, qr/.../ ); and: cmp_ok( $foo, 'eq', $bar ); warning about $foo being undefined? Especially since the test diagnostics will let you know about what was undef. -- Michael G Schwern [EMAIL PROTECTED] http://www.pobox.com/~schwern Don't try the paranormal until you know what's normal. -- "Lords and Ladies" by Terry Prachett