Every primitive type has an associated object type, whose name differs only by capitalized first letter. A few posts back, Larry mentioned that perhaps similar things should look different: this may be a good case to apply this principle.
Whenever a value passes through a primitive type, it loses all its run-time properties; and superpositions will collapse. I worry that this could cause very obscure bugs: made worse by the invisibility of the difference between primitive and object types. I would propose that, at the very least, users should be required to C<use primitives qw(int)> before using such things. Furthermore, I can't help feeling that it would be better to use the lower-case versions for the common-case: the object-types (and rename the pimitives to something like C<_prim_int32>, or C<int is primitive>). I am hopeful that the optimiser will be sufficiently clever to notice the obvious cases where a primitive can be used, so why distract the user? Dave. -- Dave Whipp, Senior Verification Engineer, Fast-Chip inc., 950 Kifer Rd, Sunnyvale, CA. 94086 tel: 408 523 8071; http://www.fast-chip.com Opinions my own; statements of fact may be in error.