We have to build two argument specs.
To populate the %parsed
hash: Capture the arguments that the user has passed in, as parsed by the Getopt::Long::GetOptions function. Aliases are converted down to their short options. If a user passes "--proximate", Getopt::Long converts that to "-p" and we store it as "-p".
To populate the @raw
array: Capture the arguments raw, without having been converted to their short options. If a user passes "--proximate", we store it in @raw
as "--proximate".