I think you're right to take a step back and learn some basic Perl and C before trying to tackle this one. When you do get back to it, here's a hint: you need to convert the string representation of an IP "192.168.1.1", which is a char * (or SVPV, in Perl) into the packed 32-bit integer representation (_u32). I've seen this done a few different ways - usually it means breaking up the string into 4 individual bytes and then packing them into a single 4-byte (32-bit) integer, using bit-math or sometimes a union.