James Mastros wrote:

On 11/27/2002 7:54 PM, Angel Faus wrote:

For example, the integer 30 can be written in base 16
in two equivalent ways:

   my $x = 16#1D;
   my $x = 16#1:14;

These two representations are incompatible, so writing
something like C<16#D:13> will generate a compile-time
error.
Ambiguity:
Is C<my $x = 16#14;> equivlent to the digit "14", base-sixteen, or is it equivlent to 0x14? (This has been noted before, but I don't think anybody has decided. My vote is 0x14, you should say my $x=16#0:14 if you want the other meaning.)
Doesn't
my $x=16#0:14
give you 2 digits rather than 1 ?

if not, there'll be an inconsistency between 16#1:14 and 16#0:14
Maybe it needs to be 16#:14 - UGH.

Presumably the compiler can determine that 16#141312 means 16#1:4:1:3:1:2 because of the length, so its only 2 character numbers with both characters numeric that are ambiguous. That's a small set of literals, but still needs resolving.

R.

Reply via email to