Perl поддерживает целые числа со знаком и без знака, и его операторы будут переключаться между ними, но вы явно запрашиваете IV (тип SV со знаком).Используйте вместо этого newSVuv.Вы также должны сказать UV a =
или unsigned a =
вместо int, если целые числа являются 32-битными, но perl использует 64-битные целые числа, так как в противном случае приведение к UV, выполненное newSVuv, в конечном итоге приведет к расширению знака до 32 старших бит.