Definitely look at Net::Frame then. You can pull apart the packets by field so for instance, source and/or destination IP address and layer 4 port. You can also pull out the data - although you may have to unpack() or decode it as it will likely be in hex.
I found the documentation of Net::Frame and submodules very helpful on this front.
did you use the net dump on windows? i am using activestate ppm and I did not see the net-frame available for windows. when i check the support table on the web site it says its only available on linux? Are there any tricks I can do to make it work on windows?