use B 'svref_2object'; $rv = \"hello kitty"; $rv_obj = svref_2object( $rv ); $rv_address = B::address( $rv_obj ); $sv_any = unpack 'P4', $rv_address; # It fails here $rv_address += 4; $sv_refcnt = unpack 'P4', $rv_address; # or here if I just increment the address $rv_address += 4; $sv_flags = unpack 'P4', $rv_address; # or anywhere I try using unpack 'P' printf "%08x\n%08x\n%08x\n", $sv_refcnt;