Net::Interface promises to be a version of the Unix command "ifconfig" for use by Perl. It sounds like a good idea but my experience of the module so far has not been very good. The documentation does not make clear what systems the module is able to run on. It compiled on Linux but not on Cygwin so possibly Cygwin is not supported. However, although it compiled on Linux many of the functions failed to run. Although "ifconfig -a" returns the MAC address of my ethernet interface, this module failed to get it: using the ->info() method, very strangely it says that my mac address of eth0 is "[". Also, the function "hwaddress" failed to run with an error message. What surprised me the most was to get a "Usage: " message from the module even though I was running it from a script.
The documentation is not good. It starts off by telling you it is a "Perl extension" which is something hopefully we already knew. The synopsis doesn't offer an example but a list of imports, which is not much use. The body of the documentation is a mish-mash, for example there are sudden random comments in the middle of the documentation saying "NO LONGER SUPPORTED". I'm sorry but it's hard to read something as disorganized as this.
The interface seems frankly horrible: here is a quote from the documentation:
"->new(); has multiple calling invocations.
This method will refresh the data for an existing interface OR it can modify and existing interface OR it can create a new interface or alias."
I know "there's more than one way to do it" but I think it's virtually an abuse of conventions to stuff a function to refresh data for an interface into a function called "new".
This would be a good module if it ran on all platforms and worked properly, but since it's easy enough to just call ifconfig/ipconfig via "system" or backticks, this module doesn't seem very useful to me.