Popt was heavily influenced by the getopt() and getopt_long() functions, but it allows more powerful argument expansion. It can parse arbitrary argv[] style arrays and automatically set variables based on command line arguments. It also allows command line arguments to be aliased via configuration files and includes utility functions for parsing arbitrary strings into argv[] arrays using shell-like rules.