sub DottedQuadToLong { return unpack('N', (pack 'C4', split(/\./, shift))); } sub LongToDottedQuad { return join('.', unpack('C4', pack('N', shift))); }