#! perl -slw use strict; use Inline C => Config => BUILD_NOISY => 1; use Inline C => <<'END_C', NAME => 'modSV', CLEAN_AFTER_BUILD => 0; void modSV( SV *ref ) { SV *sv = SvRV( ref ); unsigned __int64 uv = 9223372036854775809ull; SvUV_set( sv, uv ); SvIOK_only_UV( sv ); return; } END_C use Devel::Peek; my $sv = 123; Dump $sv; print modSV( \$sv ); Dump $sv; __END__ SV = IV(0x2c7490) at 0x2c7498 REFCNT = 1 FLAGS = (PADMY,IOK,pIOK) IV = 123 SV = IV(0x2c7490) at 0x2c7498 REFCNT = 1 FLAGS = (PADMY,IOK,pIOK) IV = -9223372036854775807