-----BEGIN PGP SIGNED MESSAGE-----

Moin,

On 23-Nov-01 Nicholas Clark tried to scribble about:
> On Fri, Nov 23, 2001 at 05:59:56PM -0500, Michael G Schwern wrote:
>> Crap, this doesn't quite work in the general case.
>> 
>>     is( undef, undef );     # ok
>>     is( 0,     undef );     # not ok
>>     is('',     undef );     # ok
>> 
>> is() uses eq and undef stringifies to ''.  is( $foo, undef ) is a nice
>> idiom, though.
>> 
>> Should is() distinguish between undef, 0 and ''?  Seeing as how it
>> already does between undef and 0 (accidentally), I guess it wouldn't
>> hurt.
> 
> I really think it should distinguish between undef and ''.
> Test::ok makes the distinction, and I find that useful.
> (and a reason to use Test; rather than use Test::More
> [if that's not a red rag to a Schwern, what is? :-) ])
> 
> In the general case I want to test that $foo is an empty defined string,
> where undef will be an error (probably an error not forseen when I was
> writing the test case).

Or the reverse: If I want totest whether $foo is undef, '' should be a
failed test.

        use Math::String;
        use test::More;

        $x = Math::String->new('ABC');  # NaN => undef on stringify
        is ($x, undef);                 # ok
        $x = Math::String->new('');     # '' => '' on stringify
        is ($x, undef);                 # doesn't fail as it should
        
> If I mean '' and undef to be equivalently correct, I usually want to
> express that explicitly.

Like:

        is ($x || '', '');

Cheers,

Tels

- -- 
 perl -MDev::Bollocks -e'print Dev::Bollocks->rand(),"\n"'
 quickly enable 24/365 communities

 http://bloodgate.com/perl       My current Perl projects
 PGP key available on http://bloodgate.com/tels.asc or via email 

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3i
Charset: latin1

iQEVAwUBO/7yUXcLPEOTuEwVAQFaKgf+P5Jsllg+3Lm8ltvoiBEtVcmIRMRlqf9j
7I6kLSWJj2GCAgge6/o9/pCfumrVNeRmkRiG8prjxVelKGd55AeYgwTcfQv2vDcm
SBVcQc9VfCuIj5T/2mQtxzeGwoxScLIW/pH5G2D3/+MuWBiyuRWQ1rxsnaoRQJrz
Zi6nchW45c2HxMMGqhSaBFMRAsp3gLmlfotG6EKih9BRxzZVLXenaC+b2NeNKIBJ
3a15h7t9HVcYGKFMQwsyA+HlsAzXEezzMQB1GYWa+D0DoMKCCaVwGehFjxHdqjpX
CbdySPtuex7Xn3kTAF4LjNpX5f3GSWbl8GpMHUNWFXaCdiwwyIk/BA==
=qtXV
-----END PGP SIGNATURE-----

Reply via email to