finally decide to use getopt:parse and getopt:usage