hi all.  What a nice thread you all had a couple weeks ago under
a subject line I wrote.


Damian Conway wrote:
> NaN is dead.
....
> Except perhaps under a C<use IEEE> pragma of some kind, in which case it
> would be a proper IEEE Norweigian Blue NaN.

which merely redifines the discussion to, how does the IEEENBNaN
behave under various circumstances.

> Meanwhile, C<undef> will numerify to zero (asit always has; as we always
> intended that it still would).

If +<undef> goes to a false NaN, but +<nonexistent> goes to zero,
we keep Aaron Sherman's instance counting code examples perfectly valid.

> Unary C<+> (and other numeric contexts) will produce C<undef> when
> attempting to convert non-numeric strings.

I think of Not-a-number as a special flavor of undef.

 
> To check for numericity of input, you'll write:
> 
>         $number = +<$fh>
>                 until defined $number;
> 
> If you ignore the definedness, the C<undef> will just promote to zero
> in numeric contexts. So you can add up your column-50 numeric fields with:
> 
>         $sum += +unpack("@49 A3", $_)
>                 while <$fh>;
> 
> and have the summation ignore non-numeric fields.

hoping to see the points about mispromotion of accidental hexidecimal
addressed somewhere, doubting I will

 
> Or you can add the fields with:
> 
>         $sum += +unpack("@49 A3", $_) // die "Bad data: $_"
>                 while <$fh>;
> 
> and handle errors with extreme prejudice.
> 
> Have I missed anything?

could have put your die inside a a try just for kicks


 
> Damian

-- 
                                                  David Nicol 816.235.1187
                       silly ears http://www.bobdylan.com/songs/gates.html

Reply via email to