GetOpt::Std only allows single-character option names, so "-ip" would be out. Also I think that it doesn't handle multiple values for a switch. This isn't mentioned in GetOpt::Std docs, but it is for GetOpt::Long.
Maybe GetOpt::Mixed would be a good suggestion - because it combines long and std with some extras.
Sidenote/Update: BTW, there's also GetOpt::Simple, but it doesn't look very simple!