in reply to Get IP Address from ARP Reply

Look at the Net::Frame suite. It will help you decipher and create frames / packets from Layer 2 all the way up

It's what I used to create Perl Packet Crafter (PPC):

Docs: http://www.vinsworld.com/software/ppc.html
Package: http://www.vinsworld.com/software/ppc.zip