A truly raw socket listens at the ethernet level, which is not something IO::Socket::INET does (which works at the IP-level, which gives you the choices for protocols TCP, UDP or ICMP).
For raw sockets, you will have to use Socket.
Edit: Raw sockets cannot be bound to an IP.
Comment on Re^3: Printing data from a raw socket to the screen and/or echoing it back via event driven means