use Perl's U32 instead of uint32_t (portability)