Я полагаю, что поведение, которое вы видите, происходит из-за "связывания".
С Getopt :: Long
Enabling this option will allow single-character options to be bundled. To distinguish bundles from long option names, long options must be introduced with -- and bundles with -
Так что, если вы используете «комплектацию», то -
--array-name=foo --r=bar # Works
-afoo -rbar # Also works
--array-name=foo -r=bar # Does not. as you've already seen
Также не имеет смысла использовать связывание, если вы не используете опции, которые не требуют параметра, и поэтому могут быть «объединены»