Sorry, that won't work. Even with REQUIRE_ORDER GetoptLong still eats the first non-option it hits so further processing won't see that argument. That, plus, the ordering of the arguments isn't always going to be conveniently in the 'right order.' nobu.nokada / softhome.net wrote: >So set opts.ordering to GetoptLong::REQUIRE_ORDER, and make new >GetoptLong instance according to the remained first argument. > > >