in reply to Re: Data::Types or grok_number
in thread Data::Types or grok_number

I was thinking of something along the lines of the following:

print TQIS::Primitive::typeis("1") ; > string print TQIS::Primitive::typeis(1) ; > integer
Here is the code:
#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" SV* typeis ( SV* what ) ; SV* typeis ( SV* what ) { if ( SvIOK( what ) ) return newSVpvs( "integer" ) ; else if ( SvNOK( what ) ) return newSVpvs( "double" ) ; else if ( SvPOK( what ) ) return newSVpvs( "string" ) ; return newSVpvs( "unknown" ) ; } MODULE = TQIS::Primitive PACKAGE = TQIS::Primitive PROTOTYPES: ENABLE SV* typeis( what ) SV* what