#!/usr/bin/perl use Inline C => <<'END_C'; void num_test(SV* sv) { I32 is_num = looks_like_number(sv); printf("'%s' looks like a number: %s (SvNV(): %g)\n", SvPV_nolen(sv), is_num ? "yes":"no", SvNV(sv) ); } END_C num_test('aa'); num_test('123'); num_test('123aa'); num_test('aa123'); num_test('1.23'); __END__ 'aa' looks like a number: no (SvNV(): 0) '123' looks like a number: yes (SvNV(): 123) '123aa' looks like a number: no (SvNV(): 123) 'aa123' looks like a number: no (SvNV(): 0) '1.23' looks like a number: yes (SvNV(): 1.23)